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

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -