ソフトウェア テスト | Python を使用して Baidu News のページ コンテンツをキャプチャする

ここに画像の説明を挿入します

導入

技術エンジニアとして、私たちは忙しい仕事の中でホットなニュースを閲覧する時間がないかもしれませんが、テクノロジーを理解している私たちは、現在起こっている主要なイベントを確認するために Web サイトにアクセスする必要はありません。 hottest news. News, この記事では、Python を使用して Baidu News のページ コンテンツをクロールする方法を紹介します。

環境整備

使用するライブラリは全てよく使われるライブラリであり、requests今回beautifulsoup使用したライブラリです インストールコマンドは以下の通りです。

pip install requests beautifulsoup4

ページコンテンツを取得する

まず、リクエスト ライブラリを使用して HTTP リクエストを送信し、Web ページのコンテンツを取得します。サンプルコードは次のとおりです。

import requests

url = 'http://news.baidu.com/'
response = requests.get(url)
html = response.text
print(html)

上記のコードでは、リクエスト ライブラリを使用して GET リクエストを送信し、response.text 属性を通じて Web ページの HTML コンテンツを取得します。

次に、BeautifulSoup ライブラリを使用して、取得した HTML コンテンツを解析し、必要な情報を抽出します。サンプルコードは次のとおりです。

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')
news_list = soup.find_all('a', class_='f-title')
for news in news_list:
    print(news.get('href'))
    print(news.get_text())

上記のコードでは、BeautifulSoupライブラリを使用して HTML コンテンツを解析し、メソッドを通じてクラスを持つすべてのタグをfind_all検索し、メソッドを通じてリンクとタイトルを取得します。"f-title"get

ニュース内容を分析する

前のステップで、ニュースのリンクとタイトルを取得しました。次に、ニュースの内容をさらに分析する必要があります。

まず、前述のリクエスト ライブラリを使用して、ニュース リンクの HTTP リクエストを送信し、ニュース詳細の HTML を取得します。サンプルコードは次のとおりです。

news_url = 'http://news.baidu.com/some_news_url'
news_response = requests.get(news_url)
news_html = news_response.text
print(news_html)

次に、BeautifulSoup ライブラリを使用してニュースの HTML コンテンツを解析し、ニュースのテキスト コンテンツを抽出します。サンプルコードは次のとおりです。

news_soup = BeautifulSoup(news_html, 'html.parser')
news_content = news_soup.find('div', class_='news-content')
print(news_content.get_text())

上記のコードでは、ニュース コンテンツが配置されているラベルのクラス属性が「news-content」であると仮定し、メソッドを通じてfindラベルを検索し、get_textメソッドを通じてラベル内のテキスト コンテンツを取得します。

データの保存と処理

最初の 2 つのステップで、ニュースのリンク、タイトル、コンテンツを取得しました。次に、このデータをローカル ファイルまたはデータベースに保存するか、さらなるデータ処理を実行できます。

データを保存する一般的な方法は、データを CSV ファイルに書き込むことです。サンプルコードは次のとおりです。

import csv

data = [['链接', '标题', '内容'],
        ['http://news.baidu.com/some_news_url', '新闻标题1', '新闻内容1'],
        ['http://news.baidu.com/some_news_url', '新闻标题2', '新闻内容2'],
        ['http://news.baidu.com/some_news_url', '新闻标题3', '新闻内容3']]

with open('news.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerows(data)

上記のコードでは、まずニュースのリンク、タイトル、内容を含む 2 次元のリスト データを定義します。次に、csv ライブラリを使用して、データを news.csv という名前のファイルに書き込みます。

注: Web サイトのデータをクロールする場合は、法的紛争を避けるために、関連する法律、規制、および Web サイトの使用ポリシーを必ず遵守してください。

おすすめ

転載: blog.csdn.net/Tester_muller/article/details/132721181