我使用Beautiful Soup在2个不同的服务器(美国/欧洲)上运行相同的python脚本,并请求获取HTML字符串。 但是我收到了相同网址的不同字符串:
http://magicseaweed.com/Playa-Jaco-Surf-Report/2472/
其中一个单位为米,日期为欧洲格式(欧洲服务器),另一个单位为英尺和美国日期格式(美国服务器)。
我试图更改请求的HTTP标头:
headers = {'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,de;q=0.2,ru;q=0.2,ja;q=0.2',
'User-Agent': 'python-requests/2.6.0 CPython/2.7.6 Darwin/14.1.0'}
r = requests.get(url,headers = headers)
但它没有改变任何东西,美国服务器仍然收到英尺单位/美国格式日期... 如何在美国服务器上接收仪表单位和欧洲日期格式,如欧洲服务器上?
答案 0 :(得分:3)
无法确定首选的度量标准系统;浏览器中没有存储此类偏好,您的操作系统也没有跟踪它。
相反,该网站只存储可在UI中设置的偏好:
此设置似乎存储在MSW_unitgroup
Cookie中:
值在uk
,us
和eu
之间切换。
登录用户可以将偏好设置为其帐户的一部分:
由于您的Python代码尚未登录帐户,因此会显示默认值;最多可以根据您的IP地址选择默认值。
您可以自己设置该Cookie:
cookies = {'MSW_unitgroup': 'eu'} # european units
headers = {'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,de;q=0.2,ru;q=0.2,ja;q=0.2',
'User-Agent': 'python-requests/2.6.0 CPython/2.7.6 Darwin/14.1.0'}
r = requests.get(url, headers=headers, cookies=cookies)
答案 1 :(得分:1)
网站magicseaweed.com将您的单位选择存储在MSW_unitgroup cookie中。如果您需要公制单位,则需要使用值“eu”发送MSW_unitgroup cookie。