Python で Selenium Webdriver を使用してネットワーク トラフィックをキャプチャしたいと考えています。したがって、プロキシ (BrowserMobProxy など) を使用する必要があります。
webdriver.Chrome を使用する場合:
from browsermobproxy import Server
server = Server("~/browsermob-proxy")
server.start()
proxy = server.create_proxy()
from selenium import webdriver
co = webdriver.ChromeOptions()
co.add_argument('--proxy-server={host}:{port}'.format(host='localhost', port=proxy.port))
driver = webdriver.Chrome(executable_path = "~/chromedriver", chrome_options=co)
proxy.new_har
driver.get(url)
proxy.har # returns a HAR
for ent in proxy.har['log']['entries']:
print ent['request']['url']
Web ページが適切に読み込まれ、すべての要求が HAR ファイルで利用可能であり、アクセス可能です。しかし、webdriver.Firefox を使用すると:
# The same as above
# ...
from selenium import webdriver
profile = webdriver.FirefoxProfile()
driver = webdriver.Firefox(firefox_profile=profile, proxy = proxy.selenium_proxy())
proxy.new_har
driver.get(url)
proxy.har # returns a HAR
for ent in proxy.har['log']['entries']:
print ent['request']['url']
Web ページを正しく読み込むことができず、HAR ファイル内の要求の数が本来あるべき要求の数よりも少なくなっています。
2番目のコードのプロキシ設定の問題は何か分かりますか? 私の目的のために webdriver.Firefox を適切に使用するには、どのように修正すればよいですか?