【问题标题】:Scrape image with no extension刮掉没有扩展名的图像
【发布时间】:2016-04-26 12:56:09
【问题描述】:

我正在尝试抓取此站点的图像: http://mis.historiska.se/mis/sok/bild.asp?uid=336358&g=1

该网站还可以选择下载不同的大小,比如这里的大图: http://catview.historiska.se/catview/media/highres/336358

我下载手册,抓取图片,甚至抓取url都没有问题,但是图片和url缺少图片扩展名。

我需要抓取带有文件名和扩展名的完整网址。,而不是实际图像。

【问题讨论】:

    标签: web-scraping


    【解决方案1】:

    正确的方法是在向给定的 url 发出文件名和扩展名的请求后检查标头。对给定 url 的简单 curl 请求会给我以下响应:

    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    Content-Type: image/jpeg
    Content-Length: 569050
    Date: Wed, 20 Jan 2016 15:33:49 GMT
    

    猜测文件扩展名的最佳方法是检查“Content-Type”标头。类似地,为了获取文件名,我们将使用 不一定要在标头中提供的“Content-Disposition”标头,在这种情况下,我们需要从标头中猜测文件名网址。 一个简单的 python sn-p 猜测扩展如下:

    import requests
    import mimetypes
    resp = requests.get(url)
    content_type = resp.headers['content-type']
    ext = mimetypes.guess_extension(content_type)
    

    【讨论】:

    • 感谢您的回答。但不幸的是,我不是编码员,也不知道你在说什么,卷曲、标题、Phyton 等。但这不是你的错。我应该提到这一点。所以感谢您尝试提供帮助。我想我对这个网站很感兴趣,必须放弃抓取它的想法。如果有其他“正常”人类可以理解的更简单的解释,请告诉我:)
    • @AndersRoss 既然您提到您正在抓取网站,我自动假设您可能正在使用某种或其他类型的代码/sn-p 来完成这项工作为你。似乎是一个糟糕的假设。
    • 是的,我正在使用 cloudcrape。它的点击界面。这就是我的大脑所能处理的一切:) 我可以毫无问题地浏览图片,但这不是我需要的。我只需要图像的完整网址,女巫似乎是不可能的。不过感谢您的努力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    相关资源
    最近更新 更多