gpt4 book ai didi

scrapy - 如何使用 Scrapy 下载图片?

转载 作者:行者123 更新时间:2023-12-01 01:56:59 27 4
gpt4 key购买 nike

我是scrapy的新手。我正在尝试从 here 下载图像.我在关注 Official-Docthis article .

我的 settings.py 看起来像:

BOT_NAME = 'shopclues'

SPIDER_MODULES = ['shopclues.spiders']
NEWSPIDER_MODULE = 'shopclues.spiders'

ROBOTSTXT_OBEY = True

ITEM_PIPELINES = {
'scrapy.contrib.pipeline.images.ImagesPipeline':1
}

IMAGES_STORE="home/pr.singh/Projects"

items.py好像:
import scrapy
from scrapy.item import Item

class ShopcluesItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
pass

class ImgData(Item):
image_urls=scrapy.Field()
images=scrapy.Field()

我认为这两个文件都很好。但是我无法编写正确的蜘蛛来获取图像。我可以获取图片 URL,但不知道如何使用 imagePipeline 存储图片.
我的蜘蛛看起来像:
from shopclues.items import ImgData
import scrapy
import datetime


class DownloadFirstImg(scrapy.Spider):
name="DownloadfirstImg"
start_urls=[
'http://www.shopclues.com/canon-powershot-sx410-is-2.html',
]

def parse (self, response):
url= response.css("body div.site-container div#container div.ml_containermain div.content-helper div.aside-site-content div.product form#product_form_83013851 div.product-gallery div#product_images_83013851_update div.slide a#det_img_link_83013851_25781870")

yield scrapy.Request(url.xpath('@href').extract(),self.parse_page)

def parse_page(self,response):
imgURl=response.css("body div.site-container div#container div.ml_containermain div.content-helper div.aside-site-content div.product form#product_form_83013851 div.product-gallery div#product_images_83013851_update div.slide a#det_img_link_83013851_25781870::attr(href)").extract()

yield {
ImgData(image_urls=[imgURl])
}

我在下面写了蜘蛛 this-article .但我什么也没得到。我运行我的蜘蛛为 scrapy crawl DownloadfirstImg -o img5.json
但我没有得到任何 json 或任何图像?关于如何抓取图片(如果它的网址是已知的)的任何帮助。我也从未使用过 python,所以对我来说事情似乎很复杂。任何好的教程的链接可能会有所帮助。 TIA

最佳答案

我不明白为什么你产生一个图像请求,你只需要将它保存在项目上,图像管道将完成剩下的工作,这就是你所需要的。

def parse (self, response):
url= response.css("body div.site-container div#container div.ml_containermain div.content-helper div.aside-site-content div.product form#product_form_83013851 div.product-gallery div#product_images_83013851_update div.slide a#det_img_link_83013851_25781870")
yield ImgData(image_urls=[url.xpath('@href').extract_first()])

关于scrapy - 如何使用 Scrapy 下载图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39745685/

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