在python urllib.urlretrieve中设置引用网址

时间:2010-01-20 02:12:21

标签: python html

我在Python中使用urllib.urlretrieve来下载网站。虽然有些网站似乎不希望我下载它们,除非他们有自己网站的适当推荐人。有没有人知道我可以在Python的一个库或外部库中设置引用者的方法。

3 个答案:

答案 0 :(得分:12)

import urllib2
req = urllib2.Request('http://www.example.com/')
req.add_header('Referer', 'http://www.python.org/')
r = urllib2.urlopen(req)

http://docs.python.org/library/urllib2.html

采用

答案 1 :(得分:3)

urllib使得很难随请求发送任意标头;你可以使用urllib2,它允许你构建和发送一个带有任意标题的Request对象(当然包括 - 唉可悲的拼写;-) - Referer)。不提供urlretrieve,但只需urlopen就可以很容易地将结果文件类对象复制到磁盘(如果需要)(直接或通过shutil函数)。

答案 2 :(得分:3)

此外,将urllib2build_opener一起使用即可:

import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('Referer', 'http://www.python.org/')]
opener.open('http://www.example.com/')