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实现豆瓣图片下载的方法
May 25 Python
qpython3 读取安卓lastpass Cookies
Jun 19 Python
Python实现的概率分布运算操作示例
Aug 14 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
Python实现批量压缩图片
Jan 25 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
python中format函数如何使用
Jun 22 Python
Python工程师必考的6个经典面试题
Jun 28 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 Python
python实现层次聚类的方法
Nov 01 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中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
jQuery 工具函数学习资料
2010/04/29 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
javascript 实现map集合
2015/04/03 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
哪些是python中web开发框架
2020/06/17 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
生产主管岗位职责
2013/11/10 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
2014年体育部工作总结
2014/11/13 职场文书
科级干部培训心得体会
2016/01/06 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis
MySQL GTID复制的具体使用
2022/05/20 MySQL