前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >scrapy异步下载图片

scrapy异步下载图片

原创
作者头像
用户6841540
发布2024-08-07 08:55:37
880
发布2024-08-07 08:55:37

scrapy异步下载图片

通过 from scrapy.pipelines.images import ImagesPipeline管道下载,可以考虑自己重写,从而修改默认的方式

爬虫文件

代码语言:txt
复制
"""scrapy异步下载图片"""

import scrapy
from selenium.webdriver import Chrome
from ..items import ServantPicItem
import pandas as pd
import numpy as np
from scrapy.pipelines.images import ImagesPipeline
class ServantSpider(scrapy.Spider):
    name_list = []
    img_list = []
    name = 'servant'
    start_urls = ['https://fgo.wiki/w/%E8%8B%B1%E7%81%B5%E5%9B%BE%E9%89%B4']



    def parse(self, response):
        item = ServantPicItem()
      

        # 读取本地csv文件
        data = pd.read_csv("link.csv",usecols=["图片名称"])
        data_array1 = np.array(data.stack())  # 首先将pandas读取的数据转化为array
        self.name_list = data_array1.tolist()
        data = pd.read_csv("link.csv",usecols=["图片链接"])
        data_array2 = np.array(data.stack())  # 首先将pandas读取的数据转化为array
        self.img_list = data_array2.tolist()  # 然后转化为list形式
        # item['name'] = self.name_list
        item['image_urls'] = self.img_list # 必须是img_urls,这是图片下载文件中有的
        yield item

setting.py文件

代码语言:txt
复制
IMAGES_STORE = 'FGO' # 没有会自动创建
ITEM_PIPELINES = {
   # 'servant_pic.pipelines.ServantPicPipeline': 300,
     'scrapy.pipelines.images.ImagesPipeline': 300,
}

管道文件不需要更改。

items.py文件

代码语言:txt
复制
import scrapy
class ServantPicItem(scrapy.Item):
    image_urls = scrapy.Field()

结果

运行后会在本地工程下兴建一个FGO文件夹,子文件夹full,

full中为下载图片,命名为以图片URL的SHA1值进行保存的

通过 from scrapy.pipelines.images import ImagesPipeline管道下载,可以考虑自己重写,从而修改默认的方式

爬虫文件

代码语言:txt
复制
"""scrapy异步下载图片"""

import scrapy
from selenium.webdriver import Chrome
from ..items import ServantPicItem
import pandas as pd
import numpy as np
from scrapy.pipelines.images import ImagesPipeline
class ServantSpider(scrapy.Spider):
    name_list = []
    img_list = []
    name = 'servant'
    start_urls = ['https://fgo.wiki/w/%E8%8B%B1%E7%81%B5%E5%9B%BE%E9%89%B4']



    def parse(self, response):
        item = ServantPicItem()
      

        # 读取本地csv文件
        data = pd.read_csv("link.csv",usecols=["图片名称"])
        data_array1 = np.array(data.stack())  # 首先将pandas读取的数据转化为array
        self.name_list = data_array1.tolist()
        data = pd.read_csv("link.csv",usecols=["图片链接"])
        data_array2 = np.array(data.stack())  # 首先将pandas读取的数据转化为array
        self.img_list = data_array2.tolist()  # 然后转化为list形式
        # item['name'] = self.name_list
        item['image_urls'] = self.img_list # 必须是img_urls,这是图片下载文件中有的
        yield item

setting.py文件

代码语言:txt
复制
IMAGES_STORE = 'FGO' # 没有会自动创建
ITEM_PIPELINES = {
   # 'servant_pic.pipelines.ServantPicPipeline': 300,
     'scrapy.pipelines.images.ImagesPipeline': 300,
}

管道文件不需要更改。

items.py文件

代码语言:txt
复制
import scrapy
class ServantPicItem(scrapy.Item):
    image_urls = scrapy.Field()

结果

运行后会在本地工程下兴建一个FGO文件夹,子文件夹full,

full中为下载图片,命名为以图片URL的SHA1值进行保存的

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • scrapy异步下载图片
    • 爬虫文件
      • setting.py文件
        • items.py文件
          • 结果
            • 爬虫文件
              • setting.py文件
                • items.py文件
                  • 结果
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档