img src = blob:如何下载图片?

时间:2017-04-06 02:47:35

标签: python web-scraping scrapy blob scrapy-spider

我使用Python下载Google Art上的网页(例如Portrait of Anthony Valabrègue),其中包含blob中的图片,如:

<img src="blob:https://www.google.com/c8c0132a-1ab7-453b-844c-0aab6449af69">

如何下​​载此图片?使用URL blob:https://www.google.com/c8c0132a-1ab7-453b-844c-0aab6449af69直接下载不起作用。该图像由6个瓦片组成,这些瓦片位于div中,带有XPath

$x('//*[@id="yDmH0d"]/div/div/div[1]/div/div[1]/div[4]/div[11]')

图像存储在blob s中。

理想情况下,我希望能够使用scrapy库从网页下载此类图像。我知道如何为常规网址执行此操作,但不知道blob:https

是的,有一种简单的方法可以在此网页上找到小分辨率图像的常规链接。但我想获得更高的分辨率,这就是为什么我需要下载存储在blob s中的6个不同的图块。

1 个答案:

答案 0 :(得分:0)

我认为你在错误的地方寻找你的形象 您正在抓取的网站充满了javascript混乱,这使得通过dom检查找到图像有点困难所以在这种情况下,您需要挖掘源页面本身。

您可以找到一个您要查找的特定图片的地方位于<meta>标记:

def parse(self, response):
    item = response.xpath('//meta[@property="og:image"]/@content').extract_first()
    #'https://lh5.ggpht.com/-HvgLbwqJ7Yy1iF9imtgsGhVDBDafmvTnDRZSCKl_PNjMT_KXaoNLuO4A7tb4Q'
    yield Request(item, self.parse_image)

def parse_image(self, response):
    with open('image.jpg', 'w') as f:
        f.write(response.body)