ホームページ > バックエンド開発 > Python チュートリアル > 簡素化された Web スクレイピング: BeautifulSoup を使用して記事タイトルを抽出する

簡素化された Web スクレイピング: BeautifulSoup を使用して記事タイトルを抽出する

DDD
リリース: 2024-12-20 13:23:09
オリジナル
291 人が閲覧しました

Web Scraping Simplified: Extracting Article Titles with BeautifulSoup

簡素化された Web スクレイピング: BeautifulSoup を使用して記事タイトルを抽出する

導入

Web スクレイピングは、Web からデータを効率的に収集する必要がある開発者にとって不可欠なスキルです。このチュートリアルでは、HTML と XML を解析するための強力なライブラリである BeautifulSoup を使用して、ニュース Web サイトから記事タイトルをスクレイピングする簡単な Python スクリプトを説明します。

このチュートリアルが終わるまでに、わずか数行のコードで Web ページから記事のタイトルを抽出して表示するスクリプトが完成します!


前提条件

コードに入る前に、システムに Python がインストールされていることを確認してください。次のライブラリも必要です:

  1. リクエスト: HTTP リクエストを作成し、Web ページのコンテンツを取得します。
  2. BeautifulSoup (bs4): HTML からデータを解析して抽出します。

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}")

ログイン後にコピー

仕組み

  1. リクエストを行う:

    • requests.get メソッドを使用して、ターゲット Web ページのコンテンツを取得します。
    • raise_for_status メソッドは、あらゆる HTTP エラー (404 や 500 など) を確実に早期に捕捉します。
  2. コンテンツを解析します:

    • BeautifulSoup ライブラリは HTML コンテンツを解析し、CSS セレクターを使用して要素を簡単に移動したり抽出したりできるようにします。
  3. タイトルを抽出します:

    • soup.select メソッドはすべての

      を取得します。要素。通常、ニュース サイトの記事タイトルが含まれます。

    • get_text メソッドは、各要素からクリーン テキストを抽出します。

出力例

スクリプトを実行すると、記事タイトルの完全なリストが取得されます。

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、発行日、または概要を抽出します。


倫理的なスクレイピングに関するヒント

  1. ウェブサイトの利用規約を尊重します:
    Web サイトの robots.txt ファイルまたは利用規約を常に確認して、スクレイピングが許可されていることを確認してください。

  2. リクエストのレート制限:
    time.sleep メソッドを使用してリクエスト間に遅延を追加することで、サーバーの過負荷を回避します。

  3. 変更を適切に処理します:
    Web サイトの構造が変更され、スクリプトが壊れる可能性があります。コードをデバッグして更新できるように常に準備してください。


結論

わずか数行の Python コードで、ニュース Web サイトから記事タイトルを収集するためのシンプルかつ強力なスクリプトを構築しました。 BeautifulSoup を使用すると、リクエストによって HTTP インタラクションを処理しながら、必要なデータに簡単に移動して抽出できます。

Web スクレイピングは、傾向の監視からデータ収集の自動化まで、豊富な機会を生み出すことができます。責任を持ってスクレイピングすることを忘れないでください!

以上が簡素化された Web スクレイピング: BeautifulSoup を使用して記事タイトルを抽出するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート