2017-09-07 155 views
1

有些网站在初学者有pt.,en.,.br,.it因为服务器的位置。按python位置访问网站

当我使用Python的函数库作为函数urlopen我必须传递网站的完整地址字符串,包括服务器位置(用于国际服务器)的终止字符串。

一些国际网站有各国服务。有什么方法可以让python对用户透明吗? (添加终止或起始字符串)因为某些网页不能自动重定向到本地邻近服务器。

+1

如果您尝试访问google.com并且Google决定将您自动转发到google.se(例如),那么客户端无法做到这一点 - 无论该客户端是人类还是Python脚本。这是由网络服务器控制的,而不是客户端。 –

+0

我们遇到了某种用于访问产品价格的一个python库的用户的问题。有时候,欧洲用户得到了美国(美元非欧元)用户的回应。 – hildogjr

+0

如果服务器为你决定,那么你就被卡住了,除非你使用VPN来让自己看起来来自不同的县。也许服务器允许你设置你的货币偏好? –

回答

0

如果您尝试访问google.com和谷歌决定转发你 自动google.se(例如),没有什么客户 可以做些什么 - 即客户端是否是一个人或一个Python脚本。 这是由网络服务器控制的,而不是客户端。

什么丹妮尔在注释中说的是不是完全正确的,当客户端访问的网页“google.com”时,现场主持人注意到你的IP位置,并发送回一个信号,告诉浏览器到目前的网站重定向到“google.se”(以Danielle的示例为例)使网站与您的IP位置相匹配。但是,您可以避免重定向。至于这个问题,下面是一个简单的演示,使用python Requests库。将allow_redirects设置为False

import requests 

r = requests.get('https://www.google.com') 
print(r.url) 
# 'https://www.google.ca/?gfe_rd=cr&dcr=0&ei=mpewWZGdGePs8we597n4Dw' 
# requests automatically followed the redirect link to google.ca 

r = requests.get('https://www.google.com', allow_redirects=False) 
print(r.url) 

# 'https://www.google.com/' 
# here it says at google.com 

您的问题不够清楚,无法提供更全面的答案。但我希望我的榜样能帮助你一点。