selenium chrome webdriver 在 linux 下设置语言

/ 3评 / 1

TLDR:

在启动chromedriver的时候设置语言环境:

export LANG=zh_CN.utf8
export LANGUAGE=zh_CN.utf8

注意要安装对应的语言,在ubuntu18.04用 apt 安装 language-pack-zh-hans,其它系统自己查,

# 查看已安装的语言
locale -a
# 安装中文
apt install language-pack-zh-hans

===============

起因是要用selenium爬取一些东西,在本地测试没问题,但放到服务器运行后发现爬取的数据都是英文。

直觉是浏览器发送的accept-language请求头引起的,于是找了一下chrome的启动参数,只有一个和语言设置有关:--lang。

于是设置--lang=zh 参数,再运行还是英文。奇怪的是在本地 --lang 是生效的,确实可以切换语言。本地和服务器环境不同的地方在于,我本地的chrome是跑在windows上的,而服务器是Ubuntu。

找了一遍谷歌,发现一篇文章说 --lang 参数在 linux 下是无效的。WC,浪费半天时间。

但转头一想,不可能在ubuntu下只能用英文版的chrome吧,肯定chrome还通过其它方式来识别当前的语言环境。然而更改系统的语言代价太高,但如果只是更改当前程序的环境变量呢?

代码是通过http和chromedriver沟通,在运行代码的时候设置语言肯定没用,那就在运行chromedriver的时候设置语言试试。

Bammmmm,获取到的终于是中文数据。

被这个问题卡了快一个星期,这里记一下,帮助一下需要的朋友。

  1. bert说道:

    请问如何在启动driver前修改语言环境?python改如何实现呢?

  2. sxm说道:

    怎么解决的。返回的内容一半英文一半中文

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注