【问题标题】:Filter out image/file links for Python mechanize web crawler过滤出 Python 机械化网络爬虫的图像/文件链接
【发布时间】:2015-08-28 07:47:11
【问题描述】:

我正在使用 mechanize 库编写一个简单的 Python 网络爬虫。

现在,我只想做以下事情:

  1. 接受 startURL 列表作为输入
  2. 对于 startURLs 中的每个 URL,抓取页面上的所有链接
  3. 然后,对每个链接执行 HTTP 请求,并从中获取所有链接...
  4. 从 startURL 到指定深度重复此操作。

所以我的问题是,当它在第 3 步时,我希望它跳过下载指向图像文件的任何链接(所以如果有一个 URL http://www.example.com/kittens.jpg)然后我希望它不要将它添加到列表中要获取的 URL。

显然我可以通过使用正则表达式来匹配 URL 路径中的各种文件扩展名来做到这一点,但我想知道是否有一种更简洁的方法来确定 URL 是否指向图像文件,而不是 HTML文档。是否有某种库函数(在 mechanize 或其他库中)可以让我这样做?

【问题讨论】:

    标签: python url web-crawler html-parsing mechanize


    【解决方案1】:

    您建议的在 url 上使用正则表达式的方法可能是最好的方法,确定 url 指向的唯一方法是向服务器发出请求并检查Content-Type header响应以查看它是否以'image/'开头。

    如果您不介意发出额外的服务器请求的开销,那么您应该为资源发送 HEAD request 而不是通常的 GET 请求 - 这将导致服务器返回有关资源的信息(包括它的内容类型)而无需实际返回文件本身,从而为您节省一些带宽。

    【讨论】:

      猜你喜欢
      • 2016-05-26
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 2015-05-12
      相关资源
      最近更新 更多