在Python urllib.urlretrieve中设置引用URL

6 投票
3 回答
8534 浏览
提问于 2025-04-15 18:14

我在用Python的urllib.urlretrieve来下载网站。不过,有些网站好像不太想让我下载它们,除非我从它们自己的网站带上一个合适的来源信息。有没有人知道我可以用Python的哪个库,或者其他的工具,来设置这个来源信息呢?

3 个回答

3

另外,使用 urllib2build_opener 你可以这样做:

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

urllib这个库在发送请求时不太方便,因为它不支持随意添加请求头。如果你想要更灵活一点,可以使用urllib2。这个库允许你创建一个请求对象,并且可以添加各种请求头(比如常见的Referer)。虽然它没有提供urlretrieve这个功能,但你可以用urlopen来打开网址,然后把得到的文件对象保存到你的电脑上,这个过程很简单,你可以直接保存,或者使用shutil库里的函数来帮助你。

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 的文档。

撰写回答