【python×selenium】ユーザーエージェントを偽装してサイトにアクセスしてみよう。

[python×selenium]ユーザーエージェントを偽装してサイトにアクセスしてみよう。

退屈なことはPythonにやらせよう ?ノンプログラマーにもできる自動化処理プログラミング

新品価格
¥4,070から
(2020/4/12 17:54時点)

今回はユーザーエージェントをランダムに変更してアクセスするプログラムを備忘録として残しておきます。

■ユーザーエージェントとは?

WEBブラウザがサーバーにアクセスするときにブラウザの種類(Chrome等)OSの種類(Windows10等)それぞれのバージョンなどの情報が送られています。

サーバーでは、ブラウザが申告してきたユーザーエージェント名を利用して、それぞれのブラウザ・OSに合わせたHTMLを返します。このユーザーエージェント名はブラウザが申告するものなので書き換えることが可能なのです。

■ユーザーエージェント(UA)偽装するプログラム

こちらの確認君に自動でアクセスしてユーザーエージェントを確認します。

https://www.ugtop.com/spill.shtml

使用するUAの情報はこちらのサイトのものを使用しました。様々な情報が載っているのでお好みのものをお使い下さい。

https://developers.whatismybrowser.com/useragents/explore/

実際のコードがこちらになります。

import random
import os
from selenium import webdriver

#UAをいくつか格納しておく
user_agent = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
              'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',
              'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36',
              'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'
              ]


options = webdriver.ChromeOptions()

#ここにuser_agentからランダムで読み込み
options.add_argument('--user-agent=' + user_agent[random.randrange(0, len(user_agent), 1)])
print(user_agent[random.randrange(0, len(user_agent), 1)])
# chromedriverの場所を指定します
chromedriver = "C:\webdriver\chromedriver.exe"

#optionsを設定します
driver = webdriver.Chrome(chrome_options=options,executable_path=chromedriver)

#確認君のサイトを開きます。
driver.get('https://www.ugtop.com/spill.shtml')

私の場合chromedriverを
“C:\webdriver\chromedriver.exe”
においているのでそれぞれ変更してください。

別記事:【python3】で【selenium】を使い【chrome」を自動操作しよう
↑↑chromedriverについてはこちらの記事をご覧ください。

osモジュール,randomモジュールは標準ライブラリなのでpipインストールは不要です。
このプログラムを実行するとChromeが立ち上がり確認くんにアクセスします。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36に設定されています。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36に設定されています。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36に設定されています。

実行の度にユーザーエージェントが変わっているのが分かりますね。
なぜだかスクレイピングで上手く要素が取得できない場合など試してみて下さい。

退屈なことはPythonにやらせよう ?ノンプログラマーにもできる自動化処理プログラミング

新品価格
¥4,070から
(2020/4/12 17:54時点)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です