在测试 headless Chrome 时,我注意到它不会传输 Accept-Language
header 条目。我已经确认,当存在可见的浏览器窗口时,它确实会被发送。
这是否有原因?chrome 是否可以选择要求/强制它发送这些正常值?
要查看此内容,您可以启动 Fiddler 并在命令行中输入以下内容:
chrome --headless --incognito --window-size=1920,1080 --disable-gpu --no-sandbox http://www.daringfireball.net/
在 Fiddler 检查器(原始 View )中,您将看到以下内容:
GET https://daringfireball.net/css/ie_sucks HTTP/1.1
Host: daringfireball.net
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/65.0.3325.181 Safari/537.36
Accept: text/css,*/*;q=0.1
Referer: https://daringfireball.net/
Accept-Encoding: gzip, deflate
在没有 --headless
的情况下运行相同的命令会得到以下结果:
GET https://daringfireball.net/css/ie_sucks.php HTTP/1.1
Host: daringfireball.net
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Accept: text/css,*/*;q=0.1
Referer: https://daringfireball.net/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
最佳答案
运行 headless 模式时,设置以下选项:
'--lang=en-GB'
关于http-headers - Headless chrome 不发送 Accept-Language header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49553714/