gpt4 book ai didi

python - 使用scrapy下载图片时遇到问题

转载 作者:太空狗 更新时间:2023-10-29 21:54:05 25 4
gpt4 key购买 nike

我用 python scrapy 编写了一个脚本,用于从网站下载一些图像。当我运行我的脚本时,我可以在控制台中看到图像链接(所有这些都是 .jpg 格式)。但是,当我打开下载完成后应该保存图像的文件夹时,我什么也得不到。我哪里出错了?

这是我的蜘蛛(我从 sublime 文本编辑器运行):

import scrapy
from scrapy.crawler import CrawlerProcess

class YifyTorrentSpider(scrapy.Spider):
name = "yifytorrent"

start_urls= ['https://www.yify-torrent.org/search/1080p/']

def parse(self, response):
for q in response.css("article.img-item .poster-thumb"):
image = response.urljoin(q.css("::attr(src)").extract_first())
yield {'':image}

c = CrawlerProcess({
'USER_AGENT': 'Mozilla/5.0',
})
c.crawl(YifyTorrentSpider)
c.start()

这是我在 settings.py 中为要保存的图像定义的内容:

ITEM_PIPELINES = {
'scrapy.pipelines.images.ImagesPipeline': 1,
}
IMAGES_STORE = "/Desktop/torrentspider/torrentspider/spiders/Images"

为了让事情更清楚:

  1. 我希望保存图像的文件夹名为 Images,我已将其放置在 torrentspider< 项目下的 spider 文件夹中
  2. Images 文件夹的实际地址是 C:\Users\WCS\Desktop\torrentspider\torrentspider\spiders

这不是在 items.py 文件的帮助下成功运行脚本。因此,使用 items.py 文件进行下载的任何解决方案都不是我想要的。

最佳答案

您生成的项目不遵循 Scrapy 的文档。如他们的 media pipeline documentation 所述该项目应该有一个名为 image_urls 的字段。您应该将您的解析方法更改为与此类似的方法。

def parse(self, response):
images = []
for q in response.css("article.img-item .poster-thumb"):
image = response.urljoin(q.css("::attr(src)").extract_first())
images.append(image)
yield {'image_urls': images}

我刚刚测试了这个并且它有效。此外,正如 Pruthvi Kumar 所评论的那样,IMAGES_STORE 应该就像

IMAGES_STORE = 'Images'

关于python - 使用scrapy下载图片时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51139170/

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