2010-03-02 74 views

回答

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 2012-11-14 14:30:37

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