Web スクレイピングは、Web からデータを効率的に収集する必要がある開発者にとって不可欠なスキルです。このチュートリアルでは、HTML と XML を解析するための強力なライブラリである BeautifulSoup を使用して、ニュース Web サイトから記事タイトルをスクレイピングする簡単な Python スクリプトを説明します。
このチュートリアルが終わるまでに、わずか数行のコードで Web ページから記事のタイトルを抽出して表示するスクリプトが完成します!
コードに入る前に、システムに Python がインストールされていることを確認してください。次のライブラリも必要です:
pip を使用してこれらのライブラリをインストールできます:
pip install requests beautifulsoup4
BBC ニュースのような Web サイトから最新ニュースを追跡したいとします。サイトに手動でアクセスする代わりに、Python を使用してこのタスクを自動化し、記事のタイトルを収集して分析または表示することができます。
記事タイトルをスクレイピングするための完全な Python スクリプトは次のとおりです。
import requests from bs4 import BeautifulSoup def fetch_article_titles(url): try: # Step 1: Send an HTTP GET request to fetch the webpage response = requests.get(url) response.raise_for_status() # Ensure the request was successful # Step 2: Parse the webpage content with BeautifulSoup soup = BeautifulSoup(response.text, "html.parser") # Step 3: Use a CSS selector to find all article titles titles = [] for heading in soup.select("h3"): # Most news sites use <h3> tags for article titles titles.append(heading.get_text(strip=True)) # Extract and clean the text return titles except requests.exceptions.RequestException as e: print(f"Error fetching the webpage: {e}") return [] except Exception as e: print(f"Error during parsing: {e}") return [] # Example usage: Fetching titles from BBC News url = "https://www.bbc.com/news" titles = fetch_article_titles(url) # Print the article titles print("Latest Article Titles:") for i, title in enumerate(titles, 1): print(f"{i}. {title}")
リクエストを行う:
コンテンツを解析します:
タイトルを抽出します:
スクリプトを実行すると、記事タイトルの完全なリストが取得されます。
Latest Article Titles: 1. Israel-Gaza conflict: Latest updates 2. Global markets fall amid economic uncertainty 3. AI advancements raise ethical questions 4. Football: Premier League results ...
このスクリプトを変更して、他のタイプのコンテンツを取得したり、異なる Web サイトをターゲットにしたりすることができます。ここでは、試してみることができるいくつかの調整を示します:
CSS セレクターを変更します:
ターゲット Web サイトの構造が異なる場合は、「h3」をより具体的なセレクター (例: 「div.article-title」) に置き換えます。
追加データのスクレイピング:
関連する HTML 要素と属性を選択して、URL、発行日、または概要を抽出します。
ウェブサイトの利用規約を尊重します:
Web サイトの robots.txt ファイルまたは利用規約を常に確認して、スクレイピングが許可されていることを確認してください。
リクエストのレート制限:
time.sleep メソッドを使用してリクエスト間に遅延を追加することで、サーバーの過負荷を回避します。
変更を適切に処理します:
Web サイトの構造が変更され、スクリプトが壊れる可能性があります。コードをデバッグして更新できるように常に準備してください。
わずか数行の Python コードで、ニュース Web サイトから記事タイトルを収集するためのシンプルかつ強力なスクリプトを構築しました。 BeautifulSoup を使用すると、リクエストによって HTTP インタラクションを処理しながら、必要なデータに簡単に移動して抽出できます。
Web スクレイピングは、傾向の監視からデータ収集の自動化まで、豊富な機会を生み出すことができます。責任を持ってスクレイピングすることを忘れないでください!
以上が簡素化された Web スクレイピング: BeautifulSoup を使用して記事タイトルを抽出するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。