2017-09-07 10 views
1

일부 웹 사이트는 pt., en. 초급이거나 .br, .it은 서버 위치로 인해 있습니다.위치 파이썬으로 웹 사이트에 액세스

파이썬 라이브러리를 함수로 사용하면 urlopen (국제 서버의 경우) 서버 위치의 종료 문자열을 포함하여 웹 사이트의 전체 주소 문자열을 전달해야합니다.

일부 국제 웹 사이트에는 각 국가 서비스가 있습니다. 파이썬에서 사용자에게 투명하게 보이게하는 방법이 있습니까? (종결 또는 스타터 문자열 추가) 일부 웹 페이지가 자동으로 로컬 근접 서버로 리디렉션하지 않기 때문입니다.

+1

google.com에 액세스하려고하면 Google이 자동으로 google.se (예 :)로 자동 전송하도록 결정합니다. 클라이언트가 인간 스크립트인지 또는 Python 스크립트인지에 관계없이 클라이언트가 할 수있는 것은 없습니다. 그것은 클라이언트가 아니라 웹 서버에 의해 제어됩니다. –

+0

제품 가격에 액세스하는 파이썬 라이브러리를 사용하는 일부 사용자에게 문제가 발생합니다. 때로는 유럽 사용자가 미국 (유로 달러가 아닌 사용자)의 응답을 받았습니다. – hildogjr

+0

서버가 당신을 위해 결정하면 VPN을 사용하지 않는 한 다른 카운티의 사람들처럼 보이지 않는 한 막혔습니다. 어쩌면 서버에서 통화에 대한 선호도를 설정할 수 있습니까? –

답변

0

당신은 google.com에 액세스하려고 구글이 자동으로 (예를 들어) google.se하는 전달하기로 결정하면, 클라이언트 가 그것에 대해 할 수있는 아무것도 - 그 클라이언트가 인간 또는 파이썬 여부 스크립트. 이것은 클라이언트가 아니라 웹 서버에 의해 제어됩니다.

Danielle이 언급 한 바에 따르면 클라이언트가 웹 페이지 "google.com"에 액세스 할 때 사이트 호스트가 IP 위치를 확인하고 브라우저에 현재 사이트를 리디렉션하라는 신호를 보냅니다. "google.se"(Danielle의 예와 함께) 사이트를 IP 위치와 일치시킵니다. 그러나 리디렉션은 피할 수 있습니다. 질문을 위해서, 여기 파이썬 Requests 라이브러리를 사용한 간단한 데모가 있습니다. allow_redirectsFalse으로 설정하십시오.

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 

질문에 대한 답변이 더 명확하지 않습니다. 그러나 나의 모범이 당신을 조금 도왔 으면 좋겠다.