2019独角兽企业重金招聘Python工程师标准>>>

文档地址:http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/images.html

实践例子: 目的:抓取http://www.hlhua.com/页面里面商品的图片

  1. 根据文档所说,先创建item用来保存图片数据,为了能够使ImagesPipeLine生效,这个item需要有名为image_urls的field属性: items.py
    import scrapyclass MyItem(scrapy.Item):image_urls = scrapy.Field()image_paths = scrapy.Field()images = scrapy.Field()
  1. 继承ImagesPipeLine编写自己的ImagesPipeLine pipeline.py
    import scrapyfrom scrapy.exceptions import DropItemfrom scrapy.pipelines.images import ImagesPipelineclass MyImageDownloadPipeLine(ImagesPipeline):def get_media_requests(self, item, info):for image_url in item['image_urls']:yield scrapy.Request(image_url)def item_completed(self, results, item, info):image_paths = [x['path'] for ok, x in results if ok]if not image_paths:raise DropItem("Item contains no images")item['image_paths'] = image_pathsreturn item

这里重写的item_completed用来在下载完成后保存image_path属性 3. 编辑settings.py使能MyImageDownloadPipeLine settings.py

    # coding=utf-8BOT_NAME = 'imagedemo'SPIDER_MODULES = ['imagedemo.spiders']NEWSPIDER_MODULE = 'imagedemo.spiders'# 使能ImagePipeLineITEM_PIPELINES = {'imagedemo.pipelines.MyImageDownloadPipeLine': 1}# 指定图片文件保存的未知IMAGES_STORE = 'image'ROBOTSTXT_OBEY = True
  1. 编写spider实现爬虫逻辑 spider.py
    # coding=utf-8from scrapy.spiders import Spiderfrom imagedemo.items import MyItemclass ImageSpider(Spider):name = 'hlhua'start_urls = ['http://www.hlhua.com/']def parse(self, response):# inspect_response(response, self)images = []for each in response.xpath("//img[@class='goodsimg']/@src").extract():m = MyItem()m['image_urls'] = [each,]images.append(m)return images
  1. 执行scrapy crawl hlhua -o images.json,即可在image/full/下载图片,并生成images.json记录图片信息。

github: https://github.com/chenglp1215/scrapy_demo/tree/master/imagedemo

转载于:https://my.oschina.net/u/2299936/blog/718474

python爬虫框架scrapy学习图片下载相关推荐

  1. Python爬虫框架Scrapy学习笔记

    scrapy.png 本文主要内容针对Scrapy有初步了解的同学.结合作者的实际项目中遇到的一些问题,汇成本文. 之后会写一些具体的爬虫demo, 放到 https://github.com/han ...

  2. Python爬虫框架Scrapy学习笔记原创

    字号 scrapy [TOC] 开始 scrapy安装 首先手动安装windows版本的Twisted https://www.lfd.uci.edu/~gohlke/pythonlibs/#twis ...

  3. Python爬虫框架Scrapy 学习笔记 6 ------- 基本命令

    1. 有些scrapy命令,只有在scrapy project根目录下才available,比如crawl命令 2 . scrapy genspider taobao http://detail.tm ...

  4. Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息

    1. 任务描述 目标网站:http://www.mininova.org/yesterday/ 目标网站截图: ------------------------------------- 可以看到种子 ...

  5. python数据分析案例2-1:Python练习-Python爬虫框架Scrapy入门与实践

    本文建立在学习完大壮老师视频Python最火爬虫框架Scrapy入门与实践,自己一步一步操作后做一个记录(建议跟我一样的新手都一步一步进行操作). 主要介绍: 1.scrapy框架简介.数据在框架内如 ...

  6. python常用命令汇总-Python爬虫框架Scrapy常用命令总结

    本文实例讲述了Python爬虫框架Scrapy常用命令.分享给大家供大家参考,具体如下: 在Scrapy中,工具命令分为两种,一种为全局命令,一种为项目命令. 全局命令不需要依靠Scrapy项目就可以 ...

  7. Python爬虫框架scrapy的用途及组件认识

    Python爬虫框架scrapy的用途及组件认识 今天简述一下Scrapy框架的大致处理流程,以方便大家更好的理解Scrapy的运行过程. Scrapy是一个快速.高层次屏幕抓取和web抓取pytho ...

  8. 精通python爬虫框架-精通Python爬虫框架Scrapy.pdf

    作 者 :(美)迪米特里奥斯·考奇斯·劳卡斯(Dimitrios Kouzis Loukas)著:李斌译 出版发行 : 北京:人民邮电出版社 , 2018.02 ISBN号 :978-7-115-47 ...

  9. 阅读《精通Python爬虫框架Scrapy》

    精通Python爬虫框架Scrapy 精通Python爬虫框架Scrapy 2018年2月的书,居然代码用的是Python2 环境使用的是Vagrant,但是由于国内网络的问题,安装的太慢了. 书里内 ...

  10. Python爬虫之Scrapy库的下载和安装

    Python爬虫之Scrapy库的下载和安装 下载scrapy库 1.点击https://www.lfd.uci.edu/~gohlke/pythonlibs,进入该网页后Ctrl+F输入scrapy ...

最新文章

  1. java gettext_JAVA中getText()怎么从一个JTextArea中读出内容?
  2. 数据结构与算法 / 排序算法(2)
  3. ActiveMQ网络连接
  4. mysql优化积累(持续更新中)
  5. 深入研究Python 世界的规则,我的薪资直接翻倍
  6. Android 无法查看外部依赖jar的源码的问题
  7. 【thinkphp】ThinkPHP各个低版本(=3.2)完全配置参考手册
  8. 苹果:2020全年App Store阻止了超15亿美元潜在诈骗交易
  9. 防蓝光膜真的能阻挡蓝光,减小辐射吗?
  10. rhel修改hostname_RHEL7 -- 修改主机名
  11. 中小企业监控体系构建实战
  12. glassfish 初次使用 (介绍・目录结构・注意点・基本命令・控制台・eclipse插件安装)
  13. UIAlertView用法
  14. 车牌号识别系统(carOR)
  15. Java读取数据库中的数据
  16. Visual studio 2022 常用快捷键
  17. 在Windows Server 2003企业版下让移动硬盘自动显示盘符
  18. 了解计算机软件系统教学设计,认识计算机》教学设计
  19. 人生就像一张茶几,摆满了各种杯具/洗具/餐具!
  20. Android 11.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决

热门文章

  1. swift拖放的按钮如何在后台设置点击事件 www.cnblogs.com/foxting/p/SWIFT.html
  2. php string to xml,php 字符串如何转换成xml
  3. php 标点符号,php怎么去除标点符号
  4. 点对点信道互连以太网实验_轩辕实验室┃SOTIF:汽车以太网容错能力测试(1)...
  5. sony笔记本触摸板角落轻敲功能
  6. linux下飞信安装详细过程
  7. 如何让textarea不可拖拽变化大小
  8. mvc表单Form提交 --实体
  9. linux自定义服务
  10. iOS不再美好 安卓收入逼近千万