修改 selenium python 绑定中的语言选项时遇到问题

新手上路,请多包涵

我已经在 python 中结合 selenium 创建了一个脚本,以从 google play 商店中抓取不同的应用程序名称,当我执行我的脚本时,它们都会出现。然而,结果被转换成我的母语,而不是英语。

如何修改 selenium python 绑定中的语言选项?

我的尝试(试图更改语言选项但失败了):

 from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC

link = 'https://play.google.com/store'

chrome_options = Options()
chrome_options.add_argument("accept-language=en-US")

with webdriver.Chrome(options=chrome_options) as driver:
    driver.get(link)
    for item in wait(driver,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'.details a.title'))):
        print(item.text)

我的输出是我的母语,不是英语。

原文由 MITHU 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

不工作:

我试过 –lang,但它对我不起作用:

 chrome_options.add_argument("--lang=en")
            OR
chrome_options.add_argument("--lang=en-US")

工作解决方案:

经过一些研究,我发现要解决这个问题,我们必须使用实验性选项 intl.accept_languages:

 options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'})
driver = webdriver.Chrome(chrome_options=options)

注意:要使用以上内容,您的网站应该需要支持。

通过将您的母语页面翻译成英语,还有另一种方法可以达到同样的效果:

尝试使用以下代码:

 prefs = {
  "translate_whitelists": {"your native language":"en"},
  "translate":{"enabled":"True"}
}
options.add_experimental_option("prefs", prefs)

原文由 Abhishek Dhoundiyal 发布,翻译遵循 CC BY-SA 4.0 许可协议

我认为您设置语言的语法已关闭。代替

chrome_options.add_argument("accept-language=en-US")

尝试

chrome_options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'})

第二轮

看起来英语在 'intl.accept_languages' 中不可用。但经过更多搜索后,我发现以下方法可能有效——试试看吧?

 chrome_options.add_argument("--lang=en-US")

第三轮

按照 Fenio 的建议尝试使用 –lang=en-GB:

 chrome_options.add_argument("--lang=en-GB")

原文由 C. Peck 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题