2017-09-07 154 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 

您的問題不夠清楚,無法提供更全面的答案。但我希望我的榜樣能幫助你一點。