1. ホーム
  2. python

[解決済み] Pythonのリクエストを使って、ブラウザの訪問を偽装し、ユーザーエージェントを生成する方法とは?

2022-04-27 01:35:23

質問

からコンテンツを取得したい。 この のウェブサイトをご覧ください。

FirefoxやChromeのようなブラウザを使えば、欲しい本当のウェブサイトのページを取得することができますが、Pythonのリクエストパッケージ(または wget コマンド)を使って取得すると、まったく別のHTMLページが返されます。

ホームページの開発者が、そのためのブロックを作ってくれているのでは?

質問

pythonのリクエストやwgetコマンドを使って、ブラウザの訪問を偽装するにはどうしたらいいですか?

どのように解決するのですか?

を用意する。 User-Agent ヘッダー :

import requests

url = 'http://www.ichangtou.com/#company:data_000008.html'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}

response = requests.get(url, headers=headers)
print(response.content)

参考までに、各ブラウザのUser-Agent文字列の一覧はこちらです。


余談ですが、サードパーティ製のパッケージでかなり便利なのが 偽ユーザエージェント は、ユーザーエージェントの優れた抽象化レイヤーを提供します。

<ブロッククオート

偽ユーザエージェント

実世界のデータベースを利用した、最新のシンプルなユーザエージェントのフェイクです。

デモの様子

>>> from fake_useragent import UserAgent
>>> ua = UserAgent()
>>> ua.chrome
u'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36'
>>> ua.random
u'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36'