如何从动态URL抓取和下载文件?

2024-04-25 13:35:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有自己的python爬虫(基于Udacity.com网站),尝试从下载文件(安装程序)下载.cnet.com,当爬虫在爬行时,我希望它像这样工作:

  1. 如果链接是下载链接,请告知:

    response = urllib2.urlopen('http://example.com/')

    content_type = response.info().get('Content-Type')

    print content_type

  2. 如果爬虫获得:

    application/octet-stream
    
  3. 爬虫程序将从链接下载安装程序

问题是下载.com似乎没有提供真正的下载链接,我的爬虫无法从他们的动态链接中找到下载链接。例如,当我试图下载Opera下载.com,他们确实有这样的信息:“你的下载马上就要开始了。但是当我选中“重新启动下载”链接时,我希望得到真正的下载链接(例如。下载.com/blah/Opera.exe),但我得到了一些爬虫无法理解的wierd地址。在

所以我从http://googlewebmastercentral.blogspot.no/2008/09/dynamic-urls-vs-static-urls.html证实了下载.com正在使用动态链接,但我应该如何做才能让我的爬虫找到这个链接,以便它可以从下载安装程序下载.com?在


Tags: 文件程序comhttp网站链接responsetype
1条回答
网友
1楼 · 发布于 2024-04-25 13:35:29

正如您所说的,很可能您在页面中获得了JavaScript或AJAX,从而在“真正的”浏览器中激活下载,同时努力实现简单的自动化。在

下面是同一问题的另一个讨论:StackOverflow: Mechanize and JavaScript。如前所述,一种选择是使用Python的替代品,如PhantomJS或浏览器自动化框架(带有可选的“远程控制”),如Selenium。在

相关问题 更多 >