Python爬虫scrapy—ImagePipeline下载图片(入门)

ImagePipeline的使用

今天我学习了scrapy框架中的ImagePipeline,因此我用ImagePipeline来下载图片,我下载的是SOL(中关村)桌面壁纸图片
在这里插入图片描述1. 找到要下载图片的url
在这里插入图片描述
2. 创建一个图片项目
在这里插入图片描述
3. 创建一个爬虫文件在这里插入图片描述
4. 在zol.py中写入图片的网址和名称

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


class ZolSpider(scrapy.Spider):
    name = 'zol'
    allowed_domains = ['zol.com.cn']
    start_urls = ['http://desk.zol.com.cn/bizhi/8886_109251_2.html']

    def parse(self, response):
        image_url=response.xpath('//img[@id="bigImg"]//@src').extract()
        image_name=response.xpath('string(//h3)').extract_first()
        yield {
            "image_urls":image_url,
            "image_name":image_name
        }
        next_url=response.xpath('//a[@id="pageNext"]/@href').extract_first()
        if next_url.find('.html')!=-1:
  		yield	scrapy.Request(response.urljoin(next_url),callback=self.parse)
  1. 在Pipelines.py中导入from scrapy.pipelines.images import ImagesPipeline和
    import scrapy

  2. 在Pipelines.py中引入一个类class ImagePipeline(ImagesPipeline),并写入两个函数def get_media_requests(self, item, info)和def file_path(self, request, response=None, info=None),这两个函数在images.py中可以找到
    在这里插入图片描述

# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
from scrapy.pipelines.images import ImagesPipeline
import scrapy

class PicturesPipeline:
    def process_item(self, item, spider):
        return item
class ImagePipeline(ImagesPipeline):
    def get_media_requests(self, item, info):
        for image_url in item["image_urls"]:
            yield scrapy.Request(image_url,meta={"image_name":item["image_name"]})

    def file_path(self, request, response=None, info=None):
        file_name=request.meta["image_name"].strip().replace('\r\n\t\t','')+'jpg'
        file_name=file_name.replace('/','-')
        return file_name
  1. 在settings.py中修改需要的内容(设置User-Agent,图片路径等)

# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36'
# Obey robots.txt rules
ROBOTSTXT_OBEY = False
ITEM_PIPELINES = {
   'pictures.pipelines.ImagePipeline': 300,
}
IMAGES_STORE='C:\\Users\\lenovo\\Pictures\\pictures'

注意:ITEM_PIPELINES中的ImagePipeline一定要和pipelines.py中的class ImagePipeline(ImagesPipeline)类名一样,不然图片名称无法修改

  1. 在pycharm中执行程序
    在这里插入图片描述
  2. 运行程序,查看结果
    在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python爬虫Scrapy项目入门是一个非常好的学习资源,它可以帮助初学者快速入门Scrapy框架,掌握爬虫的基本原理和技巧。在学习过程中,我们需要掌握Scrapy的基本组成部分,如Spider、Item、Pipeline等,同时还需要了解如何使用XPath和CSS选择器来解析网页内容。此外,我们还需要学习如何使用Scrapy的中间件来处理请求和响应,以及如何使用Scrapy的调度器来管理爬虫任务。总之,Python爬虫Scrapy项目入门是一个非常实用的学习资源,可以帮助我们快速掌握Scrapy框架的基本知识和技能。 ### 回答2: Python爬虫是一种程序,可以自动化地从互联网上抓取数据,并将其保存到本地或者数据库中。它主要是用于处理一些大量数据的项目,例如搜索引擎、在线商店等等。 Scrapy是一个Python爬虫框架,提供了强大的数据提取和处理工具。Scrapy是用Python编写的,因此可以利用Python编程语言提供的强大功能,从而轻松地编写和维护大规模的网络爬虫项目。 下面是Python爬虫Scrapy项目入门的基本步骤: 1. 安装Scrapy 在安装Scrapy之前,需要先安装Python,然后使用以下命令安装Scrapy: pip install scrapy 2. 创建一个新的Scrapy项目 使用以下命令创建一个新的Scrapy项目: scrapy startproject project_name 3. 编写爬虫程序 进入新创建的项目目录,使用以下命令创建一个新的spider(爬虫): scrapy genspider spider_name website_name 然后针对所爬取的页面编写爬虫程序。该程序需要指定爬取的起始URL,以及如何爬取和处理数据。 4. 运行爬虫程序 使用以下命令运行爬虫程序: scrapy crawl spider_name 可以在命令行中查看程序输出信息以及收集到的数据。 5. 存储数据 通过编写pipeline来将所爬取的数据存储到本地文件或数据库中。pipeline也可以用于对数据进行清洗、去重等处理。 6. 优化项目 可以通过调整Scrapy的配置来优化项目。例如设置User-Agent、延迟请求等,防止被目标网站识别出是爬虫,并被封禁。 通过以上步骤,可以轻松地入门Python爬虫Scrapy项目,并编写自己的爬虫程序,收集所需的数据。Scrapy提供了很多丰富的功能和工具,使得爬虫开发更加简单、高效。 ### 回答3: ScrapyPython下用于数据挖掘和数据爬取的一个开源框架,其崇尚规范的设计和高效的性能,使得开发者可以更加快捷、高效、可靠地获取大量数据。 在使用Scrapy进行爬虫项目入门时,首先需要安装Scrapy和依赖的库。在安装好Scrapy后,我们可以通过命令行工具开始新建一个爬虫项目,在新建的项目中,我们可以构建爬虫的main流程,包括Scrapy框架的各个模块以及管道和中间件。 然后我们需要编写爬虫规则,制定爬虫的起始URL、要爬取的数据、数据的处理方法等等。此外,如果需要登录、翻页等高级功能的话,我们还需要对爬虫规则进行扩展和调整。 编写好爬虫规则后,我们可以通过Scrapy提供的各种调试工具进行调试,在确定爬虫的工作正常后,我们可以通过配置Scrapy中间件和管道,将爬取到的数据进行清洗、处理和存储。 总体来说,Scrapy是一个强大的数据爬取工具,它简化了数据爬取过程中各种繁琐的操作,让开发者可以专注于爬取和处理数据本身。而对于初学者来说,要掌握Scrapy的使用,需要多动手实践,积极与开发者社区互动和交流,逐步提高对Scrapy框架的理解和应用水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值