我有自己的python爬虫(基于来自Udacity.com的CS101),试图从download.cnet.com下载文件(安装程序),当爬虫爬行时,我希望它像这样工作:
判断该链接是否为下载链接:
response = urllib2.urlopen('http://example.com/')
content_type = response.info()。get('Content-Type')
print content_type
如果抓取工具获得:
application/octet-stream
问题是download.com似乎没有提供真正的下载链接,我的抓取工具无法从其动态链接中找到下载链接。例如,当我尝试在download.com中下载Opera时,他们确实有这样的消息:“您的下载将在稍后开始。如果没有,请重新开始下载。”但是,当我选中“重新启动下载”链接时,我希望得到真正的下载链接(例如download.com/blah/Opera.exe),而不是我的抓取工具无法理解的地址。
所以我已经从http://googlewebmastercentral.blogspot.no/2008/09/dynamic-urls-vs-static-urls.html确认download.com正在使用动态链接,但我该怎么办才能让我的抓取工具找到此链接,以便它可以从download.com下载安装程序? p>
答案 0 :(得分:1)
正如您所说,您可能会在页面中获取JavaScript或AJAX,从而在“真实”浏览器中激活下载,同时阻碍您将其简单地自动化。
以下是对同一问题的另一种讨论:StackOverflow: Mechanize and JavaScript。如前所述,一种选择是使用Python的替代品,例如PhantomJS或浏览器自动化框架(带有可选的“远程控制”),例如Selenium。