在Selenium中通过webdriver传递用户代理
我正在用Python和Selenium做一个网站抓取的项目。当我通过浏览器打开首页时,一切正常。
但是,当我尝试通过Selenium中的webdriver()
打开网页时,却打开了一个完全不同的页面。
我觉得它可能能检测到user-agent
(不太确定这个词怎么说),并且能够检查浏览器的属性或者其他什么东西。
有没有办法通过webdriver()
传递这些属性,这样就能加载正确的首页了。
谢谢
2 个回答
1
假设问题出在用户代理上,在Java中你可以这样修改它:
FirefoxProfile profile = new FirefoxProfile();
profile.addAdditionalPreference("general.useragent.override", "some UA string");
WebDriver driver = new FirefoxDriver(profile);
详细说明可以在这里找到。
29
在Python版本的webdriver中,想要更改用户代理(user agent),需要修改浏览器的配置文件。我只在webdriver.Firefox()
中做过这个,通过传递一个配置文件参数来实现。你需要按照以下步骤操作:
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override","your_user_agent_string")
driver=webdriver.Firefox(profile)
每次你想更改用户代理时,都需要重启你的浏览器(也就是说,要再次调用driver=webdriver.Firefox(profile)
)。
如果你不确定自己的用户代理字符串是什么,可以在一个能正常显示页面的浏览器中搜索“我的用户代理是什么”,然后复制粘贴那个字符串就可以了。
希望这些信息对你有帮助。