2010-03-02 4 views
8

urllib 모듈에서 urlretrieve를 사용하고 있습니다.Urlretrieve 및 User-Agent? - Python

내 요청에 사용자 - 에이전트 설명을 추가하는 방법을 찾지 못하는 것 같습니다.


urlretrieve로 가능합니까? 또는 다른 방법을 사용해야합니까?

답변

4

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') 
+1

.version을 수정하는 것을 고려해보십시오. (편집하기에 너무 작습니다. – emartel

6

첫째, 설정 버전 : 그런 다음

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) 
0

나는이 문제를 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) 

을 내가 프록시 추가 된 이유는 찰스의 트래픽을 모니터링하고, 여기에 내가 가진 트래픽은 다음과 같습니다 :

여기에 행운이 문제에 도달 사람에게

는, 내가 한 방법이다

See the User-Agent