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

Python 如何从动态URL抓取和下载文件?,python,download,web-crawler,Python,Download,Web Crawler,我有自己的python爬虫程序(基于Udacity.com上的CS101),试图从download.cnet.com下载文件(安装程序),当爬虫程序正在爬虫时,我希望它能像这样工作: 说明该链接是否为下载链接: response=urlib2.urlopen(“”) content\u type=response.info().get('content-type') 打印内容类型 如果爬虫获得: application/octet-stream 爬虫程序将从链接下载安装程序 问题是down

我有自己的python爬虫程序(基于Udacity.com上的CS101),试图从download.cnet.com下载文件(安装程序),当爬虫程序正在爬虫时,我希望它能像这样工作:

  • 说明该链接是否为下载链接:

    response=urlib2.urlopen(“”)

    content\u type=response.info().get('content-type')

    打印内容类型

  • 如果爬虫获得:

    application/octet-stream
    
  • 爬虫程序将从链接下载安装程序
  • 问题是download.com似乎没有提供真正的下载链接,我的爬虫程序也无法从动态链接中找到下载链接。例如,当我尝试在download.com下载Opera时,他们确实有这样的消息:“您的下载马上就会开始。如果没有,请重新启动下载。”但当我选中“重新启动下载”链接时,我希望得到真正的下载链接(例如download.com/blah/Opera.exe),相反,我得到了一些我的爬虫无法理解的wierd地址


    因此,我已经确认download.com正在使用动态链接,但是我应该怎么做才能让我的爬虫找到这个链接,以便它可以从download.com下载安装程序?

    正如您所说,很可能您在页面中获得JavaScript或AJAX,从而“真实”地激活下载浏览器,而你的努力只是简单地自动化它


    下面是关于同一问题的另一个讨论:。正如上面提到的,一种选择是使用Python的替代品,如PhantomJS或浏览器自动化框架(带有可选的“远程控制”),如Selenium。

    我同意。作为Selenium的一部分,我将使用无头浏览器爬虫程序,如PhantomJS或HTMLUnitDriver。