リリースに至った経緯
これまで筆者はWebサイトのアクセス検証のために様々なユーザーエージェントを呼び出す(偽装というと語弊がある)ことができるライブラリとして,fake-useragentを使用してきた.
しかしながら,2018年10月にリリースされたバージョン0.1.11のままアップデートに気づかずに使用していたため,下記のエラーが発生していた.
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
なお,現在は最新バージョンが配布されているためエラーは解消されている.
仕方なく自作ライブラリuseragent-changerで代用してきたが,我ながら使い勝手が良く気に入っているため,このたびパッケージングしPyPIにて公開・配布するに至った.
useragent-changerの特徴
- 本パッケージには,下記にリストアップされているプラットフォームに対応した合計19,381個のUser-Agentデータが収録されている.
- Android (2,144), Chrome (4,996), Edge (91), Firefox (2,132), iPad (45), iPhone (750), Mac (1,739), Safari (4,952), Windows (2,532)
- 各プラットフォームに対応したUser-Agentは,本パッケージ内のデータフォルダ内に存在する9つのCSVファイルに収録されている.
- Python3系をサポート.
インストール
pip3 install useragent-changer
もしくは
pip3 install git+https://github.com/gitmori/useragent-changer
使用方法
User-Agent文字列を出力する.
from useragent_changer import UserAgent
ua = UserAgent('android')
print(ua.set())
# Dalvik/2.1.0 (Linux; U; Android 10; ASUS_Z01RD Build/QKQ1.191008.001)
ua = UserAgent('iphone')
print(ua.set())
# Mozilla/5.0 (iPhone; CPU iPhone OS 12_5_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1
ua = UserAgent('ipad')
print(ua.set())
# Mozilla/5.0 (iPad; CPU OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/94.0.4606.76 Mobile/15E148 Safari/604.1
ua = UserAgent('windows')
print(ua.set())
# Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)
ua = UserAgent('mac')
print(ua.set())
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:49.0) Gecko/20100101 Firefox/49.0
ua = UserAgent('chrome')
print(ua.set())
# Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 74.0.3729.169 Safari / 537.36
ua = UserAgent('edge')
print(ua.set())
# Mozilla/5.0 (Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.9200
ua = UserAgent('safari')
print(ua.set())
# Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; ja) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.523 Mobile Safari/534.11+
ua = UserAgent('firefox')
print(ua.set())
# Dalvik/2.1.0 (Linux; U; Android 10; ASUS_Z01RD Build/QKQ1.191008.001)
ua = UserAgent()
print(ua.set())
# Get a random User-Agent
動作テスト
Seleniumがインストールされていない場合は下記コマンドを実行し,Seleniumをインストールする.
pip3 install selenium
引数をfirefox
として動作確認する.
from selenium.webdriver import ChromeOptions, Chrome
from useragent_changer import UserAgent
from time import sleep
# プラットフォームを設定('Firefox'を設定)
PLATFORM= 'firefox'
# Webサイト「IPアドレス確認・環境情報取得ツール」にアクセス
URL = 'https://develop.tools/env-variable/'
# インスタンスを生成
ua = UserAgent(PLATFORM)
# オプションを設定
options = ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--user-agent=' + ua.set())
# chromedriverを使用しブラウザを起動
driver = Chrome(options=options)
driver.get(URL)
# 設定した秒数を待機後ブラウザを終了
SECONDS = 5
sleep(SECONDS)
driver.quit()
出力画面
表示されたページ内のブラウザ項目にFirefoxが表示され,User Agent項目にもFirefoxに対応した文字列が表示された.
ソースコード
下記GitHubリンクにて公開
gitmori/useragent-changer: User-Agent changing library for Python.