2011-11-27 50 views
8

我正在使用Python中的Selenium在网站上抓取项目。当我通过浏览器打开主页时,它会正常打开。通过Selenium中的webdriver传递用户代理

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

我想,它能够检测到user-agent(不知道它叫什么),并能够检查浏览器的属性或其他东西。

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

感谢

+0

你的意思是“它打开了一个完全不同的页面”。不同的网址或网站上的元素看起来不同? – maguschen

回答

26

更改webdriver的python版本中的用户代理是通过更改浏览器的配置文件完成的。我只通过传递参数来完成webdriver.Firefox()。你需要做到以下几点:

from selenium import webdriver 
profile = webdriver.FirefoxProfile() 
profile.set_preference("general.useragent.override","your_user_agent_string") 
driver=webdriver.Firefox(profile) 

你想改变,你将需要重新启动你的web浏览器的用户代理(即调用driver=webdriver.Firefox(profile)再次)

如果你不能确定你的用户代理每次字符串是在正确显示页面的浏览器上搜索“我的用户代理是什么”,只需复制并粘贴该页面即可。

希望对它进行分类。

0

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

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

见文档here

相关问题