ChatGPTでウェブスクレイピング

ガイド, ハウツー, スクレイピング, 8月-20日-2024年5分で読める

ウェブスクレイピングは、ウェブサイトから貴重なデータを抽出したい開発者、データサイエンティスト、デジタルマーケティング担当者や他の多くの人々にとって強力なツールです。もしあなたがウェブスクレイピングの旅を高めたいと思っているなら、ChatGPT の機能を活用することは大いに役立ちます。このブログでは、ChatGPT を使用して、堅牢で効率的、信頼性の高いウェブスクレイピングスクリプトを作成する方法を説明します。

ChatGPTの紹介

OpenAIが提供するChatGPTは、人間のようなテキストを理解し、生成するために設計された最先端の言語モデルです。自然言語処理(NLP)を活用し、コンテンツ作成からコーディング支援まで、様々なタスクを支援します。コンテキストを理解し、インテリジェントな提案を提供する能力を持つChatGPTは、開発者やデータサイエンティストにとって貴重な資産となっています。

ChatGptとは?

ChatGPTとは、"Chat Generative Pre-trained Transformer "の略。人工知能の一種で、受け取った入力に基づいてテキストを生成することができる。会話能力で知られているが、その応用範囲は単純な対話にとどまらない。

ウェブスクレイピングにおけるChatGptの使用法

  • コードアシスト:ウェブスクレイピングスクリプトの作成とデバッグを支援します。
  • ライブラリの推奨: Beautiful Soup、Scrapy、Selenium...などのツールを提案する。
  • ベストプラクティス 倫理的かつ効率的なスクレイピング技術に関するガイダンス。

WebスクレイピングにおけるChatGPTの限界

  • セキュリティ対策の回避 ChatGPTは、倫理的な範囲を超えて、IPブロックやその他のスクレイピング防止技術のようなセキュリティ対策を回避することはできません。
  • リアルタイムのデータ収集: ChatGPTは、リアルタイムでウェブサイトと対話し、データを収集することはできません。
  • カスタムツールの開発: ChatGPTはウェブスクレイピングのためのカスタムソフトウェアツールやフレームワークを開発することはできません。

ウェブスクレイピングのためのChatGptの使用例

チャットが直接ウェブサイトをスクレイピングすることはできないが、ウェブ・スクレイピング・プロセスにどのようにアプローチすればいいのか、アイデアを与えてくれることは確かだ。さらに、ウェブスクレイピングプロジェクトで利用できるスクリプトを提供することもできます。

簡単な例を見てみよう。ブログ記事のウェブサイトをスクレイピングし、各ブログ記事を抽出してcsvファイルに保存したいとします。保存したい情報は、ブログのタイトル、説明、ブログのURLです。

ステップ 1 - ChatGptプロンプトを作成します:

まず、ChatGPTのプロンプトを作成する必要があります。この例では、各ブログのタイトル、説明、URLを抽出するためにウェブサイト (https://www.scrapethissite.com/pages) を使用します。ChatGpt に正しく指示するために、最初のブログのセレクタを提供する必要があります。そのためには、要素を右クリックし、inspect をクリックします。

その後、再び要素を右クリックして、Xpathセレクタを取得します。 コピー そして XPathをコピー

また、ブログの説明文とURLのセクションにも同じことを適用する必要がある。

以下はプロンプトの最終版である:

Requests' 'BeautifulSoup'ライブラリを使って、このウェブサイトからブログ 記事をスクレイピング するPythonスクリプトを 開発しなさい:"https://www.scrapethissite.com/pages/"
抽出する 必要がある情報は以下の通り: 
- ブログの タイトル - XPath:"//*[@id="pages"]/section/div/div[1]/h3/a"
- ブログの 説明 - XPath:"//*[@id="pages"]/section/div/div/div[1]/p"-ブログの URL 
- XPath:"//*[@id="pages"]/section/div/div/div[1]/h3/a"

最後にスクリプトは 結果を表示し、 csvファイルに保存します 

ステップ2 - Pythonスクリプトのセットアップ:

ChatGptが出力したスクリプトです:

import requests
from bs4 import BeautifulSoup
import csv
# URL of the website to scrape
url = 'https://www.scrapethissite.com/pages/'
# Send a GET request to the URL
response = requests.get(url)
# Parse the page content using BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# List to store the scraped data
blogs = []
# Locate the sections containing blog information
# Using the provided XPath details converted to BeautifulSoup format
blog_sections = soup.select('#pages section div div div div')
for section in blog_sections:
   # Extract the blog title
   title_tag = section.select_one('h3 a')
   title = title_tag.text.strip() if title_tag else 'No title'
   # Extract the blog description
   description_tag = section.select_one('p')
   description = description_tag.text.strip() if description_tag else 'No description'
   # Extract the blog URL
   url_tag = section.select_one('h3 a')
   blog_url = url_tag['href'] if url_tag else 'No URL'
   # Append the data to the blogs list
   blogs.append({'Title': title, 'Description': description, 'URL': blog_url})
# Print the extracted information
for blog in blogs:
   print(f"Title: {blog['Title']}\nDescription: {blog['Description']}\nURL: {blog['URL']}\n")
# Save the data to a CSV file
csv_file = 'blogs.csv'
with open(csv_file, mode='w', newline='') as file:
   writer = csv.DictWriter(file, fieldnames=['Title', 'Description', 'URL'])
   writer.writeheader()
   writer.writerows(blogs)
if __name__ == '__main__':
   print(f"Data saved to {csv_file}")

このスクリプトを実行する前に、'requests'ライブラリと'bs4'ライブラリがインストールされていることを確認してください。

pipinstall requestsbs4

このスクリプトが何をするのか、簡単に説明しよう:

  • インポートライブラリ:HTTPリクエストを処理し、HTMLを解析し、CSVファイルの操作を管理するために、requests、BeautifulSoup、csvをインポートします。
  • ウェブページ・コンテンツの取得: 指定されたURLにGETリクエストを送信し、ページのHTMLコンテンツを取得します。
  • HTMLコンテンツを解析する: BeautifulSoupを使用して取得したHTMLを解析し、データ抽出を容易にします。
  • ブログ情報の抜粋
    • ブログのタイトル: 各ブログ記事のタイトルを抽出します。
    • ブログの説明: 各ブログ記事の説明を抽出します。
    • ブログのURL: 各ブログ記事のURLを抽出します。
  • データを保存する: 抽出されたデータを辞書のリストに格納する。
  • 抽出されたデータを印刷します: 各ブログ記事のタイトル、説明、URLを印刷します。
  • データをCSVに保存: 抽出したデータをblogs.csvというCSVファイルに保存します。

ステップ3 - スクリプトをテストする:

必要なライブラリをインストールしたら、好みの名前でPythonファイルを作成する。そして、そのファイルにスクリプトを貼り付けて保存します。

スクリプトを実行すると、各ブログのデータが表示され、"blogs.csv "というCSVファイルが生成される。こんな感じだ:

結論

ChatGPTは開発者、データサイエンティスト、ウェブスクレイピング愛好家にとって価値あるツールです。その機能を活用することで、Webスクレイピングスクリプトを強化し、精度を向上させ、開発時間を短縮することができます。市場分析、ソーシャルメディアモニタリング、学術研究のためにデータを抽出している場合でも、ChatGPT はより効率的に目標を達成するのに役立ちます。