我正在使用 mechanize 编写一个简单的 Python 网络爬虫图书馆。
现在,我只想执行以下操作:
所以我的问题是,当它在第 3 步时,我希望它跳过下载指向图像文件的任何链接(所以如果有一个 URL http://www.example.com/kittens.jpg)然后我希望它不要将它添加到 URL 列表中拿来。
显然,我可以通过使用正则表达式来匹配 URL 路径中的各种文件扩展名来做到这一点,但我想知道是否有更简洁的方法来确定 URL 是否指向图像文件,而不是 HTML 文档。是否有某种库函数(在 Mechanize 或其他库中)可以让我这样做?
最佳答案
您建议的在 url 上使用正则表达式的方法可能是执行此操作的最佳方法,确定 url 指向什么的唯一方法是向服务器发出请求并检查 Content-Type
header响应以查看它是否以' image/
开头'。
如果你不介意额外的服务器请求的开销,那么你应该发送一个 HEAD
request用于资源而不是通常的 GET
请求 - 这将导致服务器返回有关资源的信息(包括其内容类型)而不实际返回文件本身,从而为您节省一些带宽。
关于python - 过滤掉 Python Mechanize 网络爬虫的图像/文件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32265895/