ホームページ >バックエンド開発 >Python チュートリアル >Python でのクローラーの実践: Zhihu クローラー

Python でのクローラーの実践: Zhihu クローラー

WBOY
WBOYオリジナル
2023-06-10 16:24:071150ブラウズ

インターネット時代の今日、私たちが必要とする情報は網羅されていると言えますが、その情報をどのように入手するかが問題となることがよくあります。一般的に使用される方法の 1 つは、Web クローラーを介して情報を収集することです。 Web クローラーの作成に関しては、Python 言語が最も人気のあるツールの 1 つとなります。この記事では、Python を使用して Zhihu に基づいた Web クローラーを作成する方法について説明します。

Zhihu はよく知られたソーシャル Q&A ウェブサイトであり、情報の統合と要約において非常に重要です。当社は、ウェブサイト上の質問、回答、ユーザー情報などを取得するためにクローラーを使用することがあります。ここでは主にZhihuのユーザー情報の取得方法を紹介します。

まず、Python クローラーの共通ライブラリである Requests と BeautifulSoup を使用する必要があります。 Requests ライブラリは Web ページのコンテンツを取得するのに役立ち、BeautifulSoup ライブラリは Web ページのコンテンツを解析して必要な情報を取得するのに役立ちます。これら 2 つのライブラリは使用前にインストールする必要があります。

インストールが完了したら、まずリクエスト ライブラリを通じて Zhihu ユーザーのホームページを取得できます。例:

import requests

url = 'https://www.zhihu.com/people/zionyang/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text

上記のコードでは、次の get メソッドを通じて Zhihu ユーザーを取得します。リクエストライブラリ「zionyang」のホームページです。このうち、headers パラメーターは、クローラー対策メカニズムによって認識されるのを避けるために追加されます。

Web ページのソース コードを取得したら、BeautifulSoup を使用して HTML コンテンツを解析できます。次のコードに示すように:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'lxml')

パーサーを「lxml」に設定すると、BeautifulSoup の強力な機能を使用して HTML ドキュメントを解析できます。以下に、一般的に使用される解析方法をいくつか示します。

  1. find_all メソッド: 指定された条件に一致するすべてのノードのリストを返します。たとえば、次のコードは、ユーザーのホームページ上のすべての「質問」を返します。
questions = soup.find_all('a', {'data-nav':'question'})
for question in questions:
    print(question.text)
  1. find メソッド: 指定された条件を満たす最初のノードを返します。
name = soup.find('span', {'class': 'ProfileHeader-name'}).text
  1. select メソッド: CSS セレクターを使用して検索します。
education = soup.select('li.ProfileEducationList-item')[0].select('div.ProfileEducationList-degreeName')[0].text

上記の方法により、Zhihu ユーザー情報のさまざまなコンテンツを取得できます。なお、Webページにログインせずにユーザーのホームページにアクセスした場合、ユーザーの基本情報のみが取得でき、性別などの個人情報も取得できません。

ユーザー情報を取得すると同時に、ユーザーの注目度、ファン、いいね!などのデータも取得できます。 Fiddler などのツールを使用してパケットをキャプチャし、必要なデータに対応する URL を取得し、Requests ライブラリを通じてアクセスできます。

url = 'https://www.zhihu.com/people/zionyang/followers'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Cookie': 'your_cookie'
}
response = requests.get(url, headers=headers)
data = response.json()

その中で、独自の Cookie 情報をヘッダーに追加する必要があります。パラメータを指定しないと、必須データを取得できません。

上記の方法により、Python を使用して独自の Web クローラーを作成し、大量の情報を取得できます。もちろん、クローリングの際には、Web サイトの関連規定を遵守し、Web サイトに影響を与えないよう注意する必要がありますが、同時に個人情報の保護にも注意する必要があります。この記事での紹介が初心者の方に役立つことを願っています。

以上がPython でのクローラーの実践: Zhihu クローラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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