Python Scrapy图片爬取原理及代码实例


Posted in Python onJune 12, 2020

1.在爬虫文件中只需要解析提取出图片地址,然后将地址提交给管道

在管道文件对图片进行下载和持久化存储

class ImgSpider(scrapy.Spider):
  name = 'img'
  # allowed_domains = ['www.xxx.com']
  start_urls = ['http://www.521609.com/daxuemeinv/']
  url = 'http://www.521609.com/daxuemeinv/list8%d.html'
  pageNum = 1
  def parse(self, response):
    li_list = response.xpath('//*[@id="content"]/div[2]/div[2]/ul/li')
    for li in li_list:
      img_src = 'http://www.521609.com'+li.xpath('./a[1]/img/@src').extract_first()
      item = ImgproItem()
      item['src'] = img_src

      yield item

2.配置文件修改

配置文件要增加IMAGES_STORE = './imgsLib'表明图片存放的路径

3.管道类的修改

原本管道类继承的object,处理item对象使用时process_item方法,该方法不能发送请求,要想对图片地址发送请求,需要继承ImagesPipeline类,然后重写该类中的三个方法:get_media_requests,file_path,item_completed

from scrapy.pipelines.images import ImagesPipeline
import scrapy

class ImgproPipeline(ImagesPipeline):

  #对某一个媒体资源进行请求发送
  #item就是接收到的spider提交过来的item
  def get_media_requests(self, item, info):
    yield scrapy.Request(item['src'])

  #制定媒体数据存储的名称
  def file_path(self, request, response=None, info=None):
    name = request.url.split('/')[-1]
    print('正在下载:',name)
    return name

  #将item传递给下一个即将给执行的管道类
  def item_completed(self, results, item, info):
    return item

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中使用正则表达式的方法
Aug 13 Python
python获取当前运行函数名称的方法实例代码
Apr 06 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
DataFrame 将某列数据转为数组的方法
Apr 13 Python
PyQt5实现QLineEdit添加clicked信号的方法
Jun 25 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
Python发送手机动态验证码代码实例
Feb 28 Python
Python实现寻找回文数字过程解析
Jun 09 Python
Python Tkinter图形工具使用方法及实例解析
Jun 15 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 Python
Python实战实现爬取天气数据并完成可视化分析详解
Jun 16 Python
Python Scrapy多页数据爬取实现过程解析
Jun 12 #Python
Selenium自动化测试工具使用方法汇总
Jun 12 #Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 #Python
Django之腾讯云短信的实现
Jun 12 #Python
python相对企业语言优势在哪
Jun 12 #Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 #Python
为什么说python适合写爬虫
Jun 11 #Python
You might like
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
探讨file_get_contents与curl效率及稳定性的分析
2013/06/06 PHP
PHP的几个常用加密函数
2016/02/03 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
Js 刷新框架页的代码
2010/04/13 Javascript
Javascript中的变量使用说明
2010/05/18 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
python生成指定长度的随机数密码
2014/01/23 Python
python打开网页和暂停实例
2014/09/30 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
python调用c++传递数组的实例
2019/02/13 Python
Django 拆分model和view的实现方法
2019/08/16 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
Python3开发环境搭建详细教程
2020/06/18 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
应届实习生的自我评价范文
2014/01/05 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
给学校建议书范文
2014/05/13 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
2014年保育员工作总结
2014/12/02 职场文书
团干部培训班心得体会
2016/01/06 职场文书
Python if else条件语句形式详解
2022/03/24 Python