【Python】 Webスクレイピング fake-useragentを使用して動的なWebページをリクエストする方法

PythonでWebスクレイピングをする際、一般的に使用されるrequestsで、動的なWebページにリクエストすると実際に表示されるHTMLとは異なるHTMLがレスポンスとして返ってきます。これは、Webページがレスポンシブデザインでユーザーエージェントが設定されていないことが原因の場合があります。
本記事ではfake-useragentでユーザーエージェント情報を偽装してrequestsでHTMLレスポンスを取得する方法をご紹介します。

ユーザーエージェント (User Agent) とは

Webサイトにアクセスする際に、自身のOS・ブラウザ等の情報を発信しています。この情報の事をユーザーエージェント (User Agent) といいます。
ユーザーエージェントを伝えることで「スマートフォン」「パソコン」などを区別してサイトのデザインの切り替えなどが行われています。

fake-useragentのインストール方法

pip install fake-useragent

fake-useragentの使い方

UserAgent テキストの取得

下記のようにヘッダ情報を取得することが可能です。

>>> from fake_useragent import UserAgent
>>> ua = UserAgent()
>>> ua.ie
'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; chromeframe/11.0.696.57)'
>>> ua.opera
'Opera/9.80 (X11; Linux i686; U; it) Presto/2.7.62 Version/11.00'
>>> ua.chrome
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/4E423F'

HTMLリクエスト

取得したUserAgent情報を下記のように「requests.get」の引数に設定します。

from fake_useragent import UserAgent
ua = UserAgent()
header = {'User-Agent': str(ua.chrome)}
from fake_useragent import UserAgent
res = requests.get(url, headers=header)

参考:
https://pypi.org/project/fake-useragent/

コメント

タイトルとURLをコピーしました