ホームページ  >  記事  >  バックエンド開発  >  Python での実践的なクローラー戦闘: WeChat パブリック アカウント クローラー

Python での実践的なクローラー戦闘: WeChat パブリック アカウント クローラー

WBOY
WBOYオリジナル
2023-06-10 09:01:361548ブラウズ

Python は、強力なデータ処理機能と Web クローリング機能を備えたエレガントなプログラミング言語です。デジタル時代において、インターネットには大量のデータが溢れており、クローラはデータを取得する重要な手段となっており、Python クローラはデータ分析やマイニングに広く使用されています。

この記事では、Python クローラーを使用して WeChat 公開アカウントの記事情報を取得する方法を紹介します。 WeChat 公式アカウントは、オンラインで記事を公開するための人気のソーシャル メディア プラットフォームであり、多くの企業やセルフメディアのプロモーションとマーケティングのための重要なツールです。

次の手順:

  1. Python クローラー ライブラリのインストール

Python には、選択できる多くのクローラー ライブラリがあります。この例では、Python クローラー ライブラリ beautifulsoup4 を使用して、WeChat パブリック アカウントの記事情報を抽出します。 pip を使用してこのライブラリをインストールします。

pip install beautifulsoup4
  1. WeChat パブリック アカウントの履歴記事リンクを取得する

パブリック アカウントの履歴記事を取得するのは非常に簡単です。まず、パブリック アカウントの名前または ID を見つける必要があります。たとえば、「Zen of Python」パブリック アカウントの ID は「Zen-of-Python」です。

WeChat Web版から直接データを取得することは難しいため、記事一覧ページを簡単に取得するツールが必要です。ここでは、WeChat上の各公開アカウントの記事一覧ページを簡単に取得できるSogou WeChat Searchが提供するサービスを利用します。

ブラウザの動作をシミュレートし、検索エンジンを通じて記事一覧ページを取得するには、ロボット フレームワークと Selenium ライブラリをインストールする必要があります。

pip install robotframework
pip install robotframework-seleniumlibrary
pip install selenium
  1. 追加の記事情報の取得

各記事リンクについて、記事のタイトル、公開時刻、著者などの追加の記事情報も取得する必要があります。ここでも、 beautifulsoup4 ライブラリを使用してこの情報を抽出します。

次のコード スニペットは、パブリック アカウントの記事リンク、各記事のタイトル、公開時間、閲覧量、いいね! の数をキャプチャできます:

import requests
from bs4 import BeautifulSoup
import time

url = "http://weixin.sogou.com/weixin?type=1&query={}".format("Python之禅")

# 使用Selenium工具来模拟浏览器操作
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(url)

# 执行搜索动作
search_box = driver.find_element_by_xpath('//*[@id="query"]')
search_box.send_keys(u"Python之禅")
search_box.submit()

# 点击搜索结果中的公众号
element = driver.find_element_by_xpath('//div[@class="news-box"]/ul/li[2]/div[2]/h3/a')
element.click()

# 等待页面加载
time.sleep(3)

# 点击“历史消息”链接
element = driver.find_element_by_xpath('//a[@title="历史消息"]')
element.click()

# 等待页面加载
time.sleep(3)

# 获取文章链接
soup = BeautifulSoup(driver.page_source, 'html.parser')
urls = []
for tag in soup.find_all("a", href=True):
    url = tag["href"]
    if "mp.weixin.qq.com" in url:
        urls.append(url)

# 获取每篇文章的标题、发布时间、阅读量和点赞数
for url in urls:
    response = requests.get(url)
    response.encoding = 'utf-8'
    soup = BeautifulSoup(response.text, 'html.parser')

    title = soup.find('h2', {'class': 'rich_media_title'}).text.strip()
    date = soup.find('em', {'id': 'post-date'}).text.strip()
    readnum = soup.find('span', {'class': 'read_num'}).text.strip()
    likenum = soup.find('span', {'class': 'like_num'}).text.strip()
    print(title, date, readnum, likenum)

上記はこの記事のPython実戦:WeChatパブリックアカウントクローラーの全内容。このクローラーは、WeChat 公開アカウントの履歴記事から関連情報を取得し、Beautifulsoup4 ライブラリと Selenium ツールを通じてより具体的な抽出処理を実行できます。 Python クローラーを使用してより貴重な情報を発見することに興味がある場合は、この例が優れた出発点となります。

以上がPython での実践的なクローラー戦闘: WeChat パブリック アカウント クローラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。