urllib 모듈에서 urlretrieve를 사용하고 있습니다.Urlretrieve 및 User-Agent? - Python
내 요청에 사용자 - 에이전트 설명을 추가하는 방법을 찾지 못하는 것 같습니다.
urlretrieve로 가능합니까? 또는 다른 방법을 사용해야합니까?
urllib 모듈에서 urlretrieve를 사용하고 있습니다.Urlretrieve 및 User-Agent? - Python
내 요청에 사용자 - 에이전트 설명을 추가하는 방법을 찾지 못하는 것 같습니다.
urlretrieve로 가능합니까? 또는 다른 방법을 사용해야합니까?
나는 urlretrieve로는 가능하지 않다고 생각합니다. urllib2.Request 객체를 생성하고 필요한 헤더를 전달할 것을 제안합니다. 예제
http://docs.python.org/library/urllib2.html#urllib2.urlopen
를 참조하십시오.
URLopener 또는 FancyURLopener 클래스를 사용할 수 있습니다. 'version'인수는 오프너 객체의 사용자 에이전트를 지정합니다.
opener = FancyURLopener({})
opener.version = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.69 Safari/537.36'
opener.retrieve('http://example.com', 'index.html')
첫째, 설정 버전 : 그런 다음
urllib.URLopener.version = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 SE 2.X MetaSr 1.0'
:
filename, headers = urllib.urlretrieve(url)
나는이 문제를 7 년 동안 있었다 알고있다. 그리고 urlretrieve
기능을 사용하는 동안 User-Agent
을 변경하는 방법을 알아 내려고하여이 문제에 도달했습니다.
# proxy = ProxyHandler({'http': 'http://192.168.1.31:8888'})
proxy = ProxyHandler({})
opener = build_opener(proxy)
opener.addheaders = [('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30')]
install_opener(opener)
result = urlretrieve(url=file_url, filename=file_name)
을 내가 프록시 추가 된 이유는 찰스의 트래픽을 모니터링하고, 여기에 내가 가진 트래픽은 다음과 같습니다 :
여기에 행운이 문제에 도달 사람에게는, 내가 한 방법이다
.version을 수정하는 것을 고려해보십시오. (편집하기에 너무 작습니다. – emartel