gpt4 book ai didi

python - 使用 scrapy 抓取图像数据

转载 作者:太空狗 更新时间:2023-10-29 20:23:40 24 4
gpt4 key购买 nike

我正在使用 Scrapy 来抓取与 amazon.com 上的产品相关的图像。我将如何解析图像数据?

我通常使用 XPath。但是,我无法找到图像的 XPath(缩略图除外)。例如,这就是我解析标题的方式。

title = response.xpath('//h1[@id="title"]/span/text()').extract()

该项目的链接是:https://www.amazon.com/dp/B01N068GIX?psc=1

最佳答案

似乎可以从页面源代码中存在的 JavaScript 中提取图像。我用了js2xml将 JavaScript 源代码转换为 XML 的库(您可以在 Scrapinghub 的 blogpost 上了解更多信息)。然后可以使用 XML 创建一个 Selector,您可以使用它像往常一样提取数据。看看这个示例蜘蛛:

# -*- coding: utf-8 -*-                                                         
import js2xml
import scrapy

class ExampleSpider(scrapy.Spider):
name = 'example'
allowed_domains = ['amazon.com']
start_urls = ['https://www.amazon.com/dp/B01N068GIX?psc=1/']

def parse(self, response):
item = dict()
js = response.xpath("//script[contains(text(), 'register(\"ImageBlockATF\"')]/text()").extract_first()
xml = js2xml.parse(js)
selector = scrapy.Selector(root=xml)
item['image_urls'] = selector.xpath('//property[@name="colorImages"]//property[@name="hiRes"]/string/text()').extract()
yield item

如果你想测试一下,运行它

scrapy runspider example.py -s USER_AGENT="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36"

因为亚马逊似乎会根据用户代理字符串阻止 Scrapy。

关于python - 使用 scrapy 抓取图像数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46517549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com