Selenium改变了firefox浏览器语言python mac

时间:2012-05-12 08:33:51

标签: python firefox selenium

我花了3个小时试图找到解决这个问题的方法,而且我觉得我不得不回答这个答案。 (我发现了类似的帖子 - 下面是对我为什么要问这些帖子的解释)

我正在编写一个程序,将几个搜索词输入谷歌 - 并检索我的页面的排名。我想知道我对几个不同国家SERP的排名。我已经解决了ip地址解决的问题。但是现在我看到谷歌在给我一个SERP时考虑了我浏览器的语言。为了更接近一个国家我的页面的真实排名(我说更接近因为我也看到SERP依赖于搜索历史)我必须使用一个本地语言的网络浏览器我是感兴趣的。

手动更改firefox中的语言很困难 - 事实上你必须安装几种不同的语言版本(我也读过有关安装语言包的信息 - 但不确定这是否与firefox 12相关)。我不知道如何让selenium选择正确的firefox版本。

我很难理解需要做什么:我是否必须指定在启动时使用哪个firefox安装/版本selenium web driver.firefox().或者是否可以通过更改来确定浏览器语言firefox个人资料。

我花了一些时间查看配置文件部分 - 并找到了部分evidence(原始帖子),虽然我在配置文件中找不到任何语言参考。

同一post中的答案似乎已经解决了问题 - 但我不懂语言而且我无法理解实际上正在做什么。

我知道firefox有add-on用于在语言版本之间进行更改(您必须首先安装所需的不同语言版本的firefox) - 假设设置选项提到更改“general.useragent.local”首选项“我认为这是一个可以更改的配置文件设置 - 但是当您更改语言时,附加组件需要重新启动浏览器 - 所以..

我在配置文件设置中找不到关于general.useragent.local的任何内容。

任何一个给我指向正确方向的人都会成为我的一天!

编辑: 忘了提 - 我只知道python - 这就是我在标题中编写python的原因

1 个答案:

答案 0 :(得分:3)

好的,我必须同意,也许这不是解决这个问题的最好方法,但会回答你的需要

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('path/to/binary')
profile = webdriver.FirefoxProfile()
profile.add_extension('path/to/xpi') #XPI needs to be on disk and not downloaded from AMO
profile.set_preference('general.useragent.local','<enter your value')

driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=profile)
# Carry on with what you want

pydocs可用here