栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python scapy鎶撳寘_scrapy妗嗘灦鐖彇鍥剧墖?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python scapy鎶撳寘_scrapy妗嗘灦鐖彇鍥剧墖?

基本操作:python—scrapy数据解析、存储_郑*杰的博客-CSDN博客

步骤:

a.在爬虫文件抓取图片地址后返回给itmes对象

b.在管道文件重写三个父类的方法来完成图片二进制数据的请求和持久化存储

c.setting.py文件添加指定图片存放的目录:IMAGES_STORE = '指定目录路径'

当前文件:D:python_testscrapyProjectscrapyProjectspidersfirst.py
import scrapy
from ..items import ScrapyprojectItem
class FirstSpider(scrapy.Spider):
    name = 'first'
    start_urls = ['https://pic.netbian.com/4kmeinv/']

    def parse(self, response):
        list_ul = response.xpath('//div[@class = "slist"]/ul/li')
        for li in list_ul:
            img_url = li.xpath('.//img/@src').extract_first()
            img_url="https://pic.netbian.com/"+img_url
            items = ScrapyprojectItem()
            items['img_url'] = img_url
            yield  items
当前文件:D:python_testscrapyProjectscrapyProjectpipelines.py

import scrapy
from itemadapter import ItemAdapter
from scrapy.pipelines.images import ImagesPipeline # pip install Pillow

#自定义的管道类要继承与ImagesPipeline,所有多媒体都用这个类
class mediaPileline(ImagesPipeline):

    #重写三个父类的方法完成图片二进制数据的请求和持久化存储
    #可以根据图片地址,对其进行请求,获取图片数据 
    def get_media_requests(self, item, info):
        img_src = item['img_url']
        yield scrapy.Request(img_src)
       # yield scrapy.Request(img_src,meta={'item':item}) 可将item传给file_path

    #指定图片的名称(只需要返回图片存储的名称即可)
    def file_path(self, request, response=None, info=None, *, item=None):
        # meta = request.meta
        imgName = request.url.split('/')[-1]
        print(imgName,'下载保存成功!')
        return imgName

    def item_completed(self, results, item, info):
        return item #可以将当前的管道类接收到item对象传递给下一个管道类

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786862.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号