【发布时间】:2017-11-07 15:10:23
【问题描述】:
我刚刚编写了一个 Python 爬虫来从 freemidi.org 下载 MIDI 文件。查看Chrome中的请求头,发现如果下载页面是https://freemidi.org/getter-20225(简称“getter-20225”),“Referer”属性必须是https://freemidi.org/download-20225(后面简称为“download-20225”)稍后)为了正确下载midi文件。我在 Python 中这样做了,像这样设置标题:
headers = {
'Referer': 'https://freemidi.org/download-20225',
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
}
这和我在Chrome中查看的请求头完全一样,我尝试使用这行代码下载文件。
midi = requests.get(url, headers=headers).content
但是,它不能正常工作。它没有下载 midi 文件,而是下载了站点“download-20225”的 html 文件。后来我发现如果我尝试直接访问站点“getter-20225”,它也会带我到“download-20225”。我认为这可能表明标题错误,所以它把我带到另一个网站而不是开始下载。
我对编写 Python 爬虫还是很陌生,所以有人可以帮我找出程序出了什么问题吗?
【问题讨论】:
标签: python http-headers web-crawler python-requests