注目キーワード
  1. 技術
  2. 広告
  3. IDFA
  4. PHP
  5. WordPress

【python】SeleniumでUserAgentを変える(偽装する)方法

UserAgentがpython-requestsになってしまった

pythonでseleniumを使っていますが、ユーザーエージェント(UserAgent) を特に指定をしないと、python-requests という文字列がユーザーエージェント(UserAgent)になっています。これだと、ユーザーエージェントで処理の切り分けをしているテストをしたい場合、うまくテストすることができないため、ユーザーエージェントを偽装して実行するようにします。

UserAgentを変える(偽装する)方法

偽装するのは簡単にできます。今回は下記のユーザーエージェントのいずれかになるように変更してみます。

・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

3つからランダムで、1つ選ばれるようにします。

    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()
    options.add_argument('--user-agent=' + user_agent[random.randrange(0, len(user_agent), 1)])

    driver = webdriver.Chrome(chrome_options=options, executable_path='./driver/chromedriver')

上記のように、user_agentに変更したい文字列を持たせて、optionsにセットします。そして、driverを定義する際に、webdriver.Chromeの引数に入れてあげることで偽装することができます。ここまで終わったら、あとはいつも通り、処理するだけでokです。

        driver.get('https://xxxxxxxxxxxxx')

ここでは、ブラウザを開いて、処理完了です。