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

 更新时间:2020年06月12日 10:21:22   作者:Hedger_Lee  
这篇文章主要介绍了Python Scrapy图片爬取原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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获取文件ssdeep值的方法

    Python获取文件ssdeep值的方法

    这篇文章主要介绍了Python获取文件ssdeep值的方法,是一个比较实用的技巧,本文详细讲述了实现这一功能的具体步骤及相关注意事项,需要的朋友可以参考下
    2014-10-10
  • 一篇文章搞定Python操作文件与目录

    一篇文章搞定Python操作文件与目录

    这篇文章主要给大家介绍了关于如何通过一篇文章搞定Python操作文件与目录的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • python2 与python3的print区别小结

    python2 与python3的print区别小结

    这篇文章主要介绍了python2 与python3的print区别小结,需要的朋友可以参考下
    2018-01-01
  • Numpy中np.dot与np.matmul的区别详解

    Numpy中np.dot与np.matmul的区别详解

    本文主要介绍了Numpy中np.dot与np.matmul的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python编程实现控制cmd命令行显示颜色的方法示例

    Python编程实现控制cmd命令行显示颜色的方法示例

    这篇文章主要介绍了Python编程实现控制cmd命令行显示颜色的方法,结合实例形式分析了Python针对命令行字符串显示颜色属性相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • python学生管理系统开发

    python学生管理系统开发

    这篇文章主要为大家详细介绍了基础版和函数版的python学生管理系统开发,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Python如何拆分含有多种分隔符的字符串

    Python如何拆分含有多种分隔符的字符串

    这篇文章主要介绍了Python如何拆分含有多种分隔符的字符串问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python中ttkbootstrap的介绍与基本使用

    Python中ttkbootstrap的介绍与基本使用

    ttkbootstrap是一个基于 tkinter 的界面美化库,使用这个工具可以开发出类似前端bootstrap风格的tkinter桌面程序,下面这篇文章主要给大家介绍了关于Python中ttkbootstrap的介绍与基本使用的相关资料,需要的朋友可以参考下
    2023-01-01
  • python实现图片,视频人脸识别(dlib版)

    python实现图片,视频人脸识别(dlib版)

    这篇文章主要介绍了python实现图像,视频人脸识别(dlib版)的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-11-11
  • python继续找对象详解

    python继续找对象详解

    这篇文章主要为大家介绍了python继续找对象的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01

最新评论