在Selenium中通过webdriver传递用户代理

时间:2011-11-27 14:06:27

标签: python selenium screen-scraping web-scraping user-agent

我正在使用Python中的Selenium开发网站抓取项目。当我通过浏览器打开主页时,它会正常打开。

但是,当我尝试在Selenium中通过webdriver()打开网页时,会打开一个完全不同的页面。

我认为,它能够检测到user-agent(不确定它的名称),并能够检查浏览器的属性或其他内容。

是否可以通过webdriver()传递属性,以便加载正确的主页。

由于

2 个答案:

答案 0 :(得分:27)

通过更改浏览器的配置文件来更改python版webdriver中的用户代理。我只通过传递一个profile参数为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)

如果您不确定您的用户代理字符串是什么,请在正确显示该页面的浏览器上搜索“我的用户代理是什么”,然后复制并粘贴该页面。

希望对其进行排序。

答案 1 :(得分:1)

假设用户代理是问题,在Java中你可以像这样修改它:

FirefoxProfile profile = new FirefoxProfile();
profile.addAdditionalPreference("general.useragent.override", "some UA string");
WebDriver driver = new FirefoxDriver(profile);

请参阅文档here