我使用Python下载Google Art (如Portrait of Anthony Valabrègue)上的一个网页,其中包含blobs中的图像,如:
<img src="blob:https://www.google.com/c8c0132a-1ab7-453b-844c-0aab6449af69">
如何下载此镜像?使用URL blob:https://www.google.com/c8c0132a-1ab7-453b-844c-0aab6449af69
直接下载是行不通的。该图像由6个瓦片组成,它们位于带有XPath的div中
$x('//*[@id="yDmH0d"]/div/div/div[1]/div/div[1]/div[4]/div[11]')
图像存储在blob
%s中。
理想情况下,我希望能够下载这样的图像从网页使用scrapy
库。我知道如何为常规的urls做这件事,但不是为blob:https
。
是的,有一个简单的方法可以在这个网页上找到一个小分辨率图像的常规链接。但我想获得更高的分辨率,这就是为什么我需要下载6种不同的瓦片,它们存储在blob
s中。
发布于 2017-04-06 20:00:00
我认为你在错误的地方寻找你的形象。
你正在抓取的网站充满了javascript的杂乱,这使得通过dom which找到图片有点困难,所以在这种情况下,你需要挖掘源页面本身。
您可以在<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)
https://stackoverflow.com/questions/43244794
复制相似问题