python爬虫框架scrapy学习图片下载
2019独角兽企业重金招聘Python工程师标准>>>
文档地址:http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/images.html
实践例子: 目的:抓取http://www.hlhua.com/页面里面商品的图片
- 根据文档所说,先创建item用来保存图片数据,为了能够使ImagesPipeLine生效,这个item需要有名为image_urls的field属性: items.py
import scrapyclass MyItem(scrapy.Item):image_urls = scrapy.Field()image_paths = scrapy.Field()images = scrapy.Field()
- 继承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
- 编写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
- 执行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学习图片下载相关推荐
- Python爬虫框架Scrapy学习笔记
scrapy.png 本文主要内容针对Scrapy有初步了解的同学.结合作者的实际项目中遇到的一些问题,汇成本文. 之后会写一些具体的爬虫demo, 放到 https://github.com/han ...
- Python爬虫框架Scrapy学习笔记原创
字号 scrapy [TOC] 开始 scrapy安装 首先手动安装windows版本的Twisted https://www.lfd.uci.edu/~gohlke/pythonlibs/#twis ...
- Python爬虫框架Scrapy 学习笔记 6 ------- 基本命令
1. 有些scrapy命令,只有在scrapy project根目录下才available,比如crawl命令 2 . scrapy genspider taobao http://detail.tm ...
- Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息
1. 任务描述 目标网站:http://www.mininova.org/yesterday/ 目标网站截图: ------------------------------------- 可以看到种子 ...
- python数据分析案例2-1:Python练习-Python爬虫框架Scrapy入门与实践
本文建立在学习完大壮老师视频Python最火爬虫框架Scrapy入门与实践,自己一步一步操作后做一个记录(建议跟我一样的新手都一步一步进行操作). 主要介绍: 1.scrapy框架简介.数据在框架内如 ...
- python常用命令汇总-Python爬虫框架Scrapy常用命令总结
本文实例讲述了Python爬虫框架Scrapy常用命令.分享给大家供大家参考,具体如下: 在Scrapy中,工具命令分为两种,一种为全局命令,一种为项目命令. 全局命令不需要依靠Scrapy项目就可以 ...
- Python爬虫框架scrapy的用途及组件认识
Python爬虫框架scrapy的用途及组件认识 今天简述一下Scrapy框架的大致处理流程,以方便大家更好的理解Scrapy的运行过程. Scrapy是一个快速.高层次屏幕抓取和web抓取pytho ...
- 精通python爬虫框架-精通Python爬虫框架Scrapy.pdf
作 者 :(美)迪米特里奥斯·考奇斯·劳卡斯(Dimitrios Kouzis Loukas)著:李斌译 出版发行 : 北京:人民邮电出版社 , 2018.02 ISBN号 :978-7-115-47 ...
- 阅读《精通Python爬虫框架Scrapy》
精通Python爬虫框架Scrapy 精通Python爬虫框架Scrapy 2018年2月的书,居然代码用的是Python2 环境使用的是Vagrant,但是由于国内网络的问题,安装的太慢了. 书里内 ...
- Python爬虫之Scrapy库的下载和安装
Python爬虫之Scrapy库的下载和安装 下载scrapy库 1.点击https://www.lfd.uci.edu/~gohlke/pythonlibs,进入该网页后Ctrl+F输入scrapy ...
最新文章
- java gettext_JAVA中getText()怎么从一个JTextArea中读出内容?
- 数据结构与算法 / 排序算法(2)
- ActiveMQ网络连接
- mysql优化积累(持续更新中)
- 深入研究Python 世界的规则,我的薪资直接翻倍
- Android 无法查看外部依赖jar的源码的问题
- 【thinkphp】ThinkPHP各个低版本(=3.2)完全配置参考手册
- 苹果:2020全年App Store阻止了超15亿美元潜在诈骗交易
- 防蓝光膜真的能阻挡蓝光,减小辐射吗?
- rhel修改hostname_RHEL7 -- 修改主机名
- 中小企业监控体系构建实战
- glassfish 初次使用 (介绍・目录结构・注意点・基本命令・控制台・eclipse插件安装)
- UIAlertView用法
- 车牌号识别系统(carOR)
- Java读取数据库中的数据
- Visual studio 2022 常用快捷键
- 在Windows Server 2003企业版下让移动硬盘自动显示盘符
- 了解计算机软件系统教学设计,认识计算机》教学设计
- 人生就像一张茶几,摆满了各种杯具/洗具/餐具!
- Android 11.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决
热门文章
- swift拖放的按钮如何在后台设置点击事件 www.cnblogs.com/foxting/p/SWIFT.html
- php string to xml,php 字符串如何转换成xml
- php 标点符号,php怎么去除标点符号
- 点对点信道互连以太网实验_轩辕实验室┃SOTIF:汽车以太网容错能力测试(1)...
- sony笔记本触摸板角落轻敲功能
- linux下飞信安装详细过程
- 如何让textarea不可拖拽变化大小
- mvc表单Form提交 --实体
- linux自定义服务
- iOS不再美好 安卓收入逼近千万