[解決済み] Selenium web-driverのユーザーエージェントを変更する。
質問
以下のコードを
Python
:
from selenium.webdriver import Firefox
from contextlib import closing
with closing(Firefox()) as browser:
browser.get(url)
ユーザーエージェントHTTPヘッダを表示させたい。 変更できるかもしれません。可能でしょうか?
解決方法を教えてください。
Seleniumにはリクエストヘッダやレスポンスヘッダを読み取る方法がありません。この種の情報を記録するプロキシを経由して接続するようにブラウザに指示することによって、それを行うことができます。
Firefoxでユーザーエージェントを設定する
Firefox でユーザーエージェントを変更する通常の方法は、変数
"general.useragent.override"
を Firefox プロファイルに追加します。これはSeleniumから独立していることに注意してください。
このように、デフォルトとは異なるプロファイルを使用するようにSeleniumに指示することができます。
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", "whatever you want")
driver = webdriver.Firefox(profile)
Chromeでユーザーエージェントを設定する
Chromeの場合、やりたいことは
user-agent
コマンドラインオプションを使用します。繰り返しになりますが、これはSeleniumのことではありません。コマンドラインでChromeを呼び出すには、次のようにします。
chrome --user-agent=foo
という値でエージェントを設定します。
foo
.
Seleniumでは、このように設定します。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opts = Options()
opts.add_argument("user-agent=whatever you want")
driver = webdriver.Chrome(chrome_options=opts)
上記の方法はいずれもテストして動作することが確認されています。他のブラウザーについてはわかりません。
ユーザーエージェントの取得
のインスタンスからユーザーエージェントを問い合わせるメソッドはありません。
WebDriver
. Firefox の場合でも、デフォルトのユーザーエージェントを確認するために
general.useragent.override
は、カスタム値に設定されていない場合は、このようになります。(この設定は
ある
を設定する必要があります)。
しかし、ブラウザが起動した後は、実行することでユーザーエージェントを取得することができます。
agent = driver.execute_script("return navigator.userAgent")
は
agent
変数にはユーザーエージェントが入ります。
関連
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] virtualenvで異なるバージョンのPythonを使用する
-
[解決済み] 億の相対的輸入
-
[解決済み] 他のPythonファイルをインポートするには?
-
[解決済み] コンマを桁区切りとして数字を印刷するには?
-
[解決済み] アクセスコントロールリクエストヘッダは、jQueryでAJAXリクエストのヘッダに追加されます。
-
[解決済み】全てのブラウザで、Webページのキャッシュを制御するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
python string splicing.join()とsplitting.split()の説明
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonによるjieba分割ライブラリ
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?