python - How does a website know your metric system, date format ...? -
python - How does a website know your metric system, date format ...? -
i run same python script on 2 different server (us/europe) using beautiful soup , requests html string. receive different string same url :
http://magicseaweed.com/playa-jaco-surf-report/2472/
one units in meters , date in europe format (europe server) , 1 in feet , date format (us server).
i've tried changed http header of request :
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)
but doesn't alter anything, server still receive feet units/us format date... how can receive meters units , europe date format on server on europe server ?
there no way determine metric scheme preferred; there no such preference stored browsers nor os track it.
instead, site stores preference, settable in ui:
this setting appears stored in msw_unitgroup
cookie:
the values switch between uk
, us
, eu
.
logged-in users can set preference part of account:
since python code has not logged account, default shown; @ best default picked based on ip address.
you can set cookie yourself:
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)
python http-headers beautifulsoup server python-requests
Comments
Post a Comment