저는 Python 2.7을 사용하고 있습니다.Python에서 urlopen 또는 urllib2로 국가 기반 리디렉션을 피하는 방법
웹 사이트의 URL을 열고 정보를 추출하고 싶습니다. 내가 찾고있는 정보는 미국 버전의 웹 사이트 (http://www.thewebsite.com) 내에 있습니다. 나는 캐나다에 거주하고 있기 때문에 자동으로 캐나다 웹 사이트 (http://ca.thewebsite.com)로 리디렉션됩니다. 나는 이것을 피하려고하는 해결책을 찾고있다.
브라우저 (IE, Firefox, Chrome 등)를 사용하고 http://www.thewebsite.com으로 이동하면 리디렉션됩니다. 이 웹 사이트는 방문객이 보려는 웹 사이트의 "국가 버전"을 선택할 수있는 메뉴를 제공합니다. 미국을 선택하면 더 이상 캐나다 버전의 웹 사이트로 리디렉션되지 않습니다. 이는 브라우징 세션 내의 모든 새 탭에 해당됩니다. 쿠키 저장과 관련이 있다고 생각합니다.
나는 리디렉션 방지하기 위해 다음 코드를 사용하려고 :import urllib2
class RedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_302(self, req, fp, code, msg, headers):
result = urllib2.HTTPError(req.get_full_url(), code, msg, headers, fp)
result.status = code
return result
http_error_301 = http_error_303 = http_error_307 = http_error_302
opener = urllib2.build_opener(RedirectHandler())
webpage = opener.open('http://www.thewebsite.com')
을하지만 이후 IS 추출 할 수있는 코드의 유일한 비트부터 작동하지 않았다
<html><head></head><body>‹</body></html>
내 문제에 대한 해결책은 웹 사이트를 긁어 모으는 동안 프록시를 사용하는 것이지만, 파이썬 또는 파이썬 패키지를 독점적으로 사용하여 이러한 종류의 리디렉션을 막는 방법이 있는지 궁금합니다.
고마워요! Mechanize와 함께 CookieJar 기능을 사용하여 문제를 해결했습니다. – LaGuille