我使用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个不同的图块。
答案 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)