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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
Python 随机生成中文验证码的实例代码
Mar 20 Python
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
Python装饰器的函数式编程详解
Feb 27 Python
python类的继承实例详解
Mar 30 Python
Python中几种导入模块的方式总结
Apr 27 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
Python实现EXCEL表格的排序功能示例
Jun 25 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
完美解决python针对hdfs上传和下载的问题
Jun 05 Python
python使用正则表达式匹配txt特定字符串(有换行)
Dec 09 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通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
一段实时更新的时间代码
2006/07/07 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
js的一些常用方法小结
2011/06/29 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
JavaScript中this详解
2015/09/01 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
nodejs实现邮件发送服务实例分享
2017/03/29 NodeJs
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
python进阶教程之词典、字典、dict
2014/08/29 Python
详解python里的命名规范
2018/07/16 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
python设置中文界面实例方法
2020/10/27 Python
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
如何获得EntityManager
2014/02/09 面试题
护士辞职信范文
2014/01/19 职场文书
教师申诉制度
2014/01/29 职场文书
劳动竞赛活动总结
2014/05/05 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
工作检讨书500字
2014/10/19 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
关于感恩的作文
2019/08/26 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python