Scrapy——抓取图片
来源:互联网 发布:扁平化与金字塔 知乎 编辑:程序博客网 时间:2024/06/07 16:37
#items.pyimport scrapyclass JiandanItem(scrapy.Item): # define the fields for your item here like: image_urls = scrapy.Field() image=scrapy.Field()
#spider.py# -*- coding: utf-8 -*-import scrapyfrom scrapy import Requestfrom ..items import JiandanItemclass JiandanSpider(scrapy.Spider): name='jiandan' allowed_domains=[] start_urls=['http://jandan.net/ooxx'] def parse(self,response): item=JiandanItem() item['image_urls']=response.css('img::attr(src)').extract() yield item new_url=response.css('a.previous-comment-page::attr(href)').extract_first() if new_url: yield Request(new_url,callback=self.parse)
#pipelines.pyfrom scrapy.pipelines.images import ImagesPipelineimport scrapyclass JiandanPipeline(ImagesPipeline): #发起request,下载图片 def get_media_requests(self, item, info): for image_url in item['image_urls']: yield scrapy.Request('http:'+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") return item
#settings.py# 使用图片管道ITEM_PIPELINES = { 'jiandan.pipelines.JiandanPipeline': 1, }IMAGES_STORE = 'f:/jiandan' # 图片存储路径# 30 days of delay for images expirationIMAGES_EXPIRES = 30# 图片缩略图IMAGES_THUMBS = { 'small': (50, 50), 'big': (270, 270),}# 图片过滤器,最小高度和宽度IMAGES_MIN_HEIGHT = 110IMAGES_MIN_WIDTH = 110#下载延迟DOWNLOAD_DELAY = 0.25
在item中设置image_urls字段,存储爬取到的图片的链接,在pipelines中request相应url,下载图片,并把下载失败的item移除。
阅读全文
0 0
- Scrapy——抓取图片
- Scrapy抓取壁纸图片
- python scrapy—登录抓取数据
- 【Python】Scrapy抓取多玩Gif图片
- 使用scrapy抓取堆糖图片
- python - 使用 scrapy 抓取美女图片实录
- Scrapy 在shell下抓取图片
- Scrapy使用——抓取赶集网北京公交信息
- Scrapy教程——自动多网页抓取
- 1.python开源——scrapy抓取豆瓣信息
- python爬虫——BeautifulSoup 抓取图片
- 网络爬虫框架scrapy介绍及应用——抓取新浪新闻的标题内容评论
- Scrapy ——自动多网页爬取(抓取某人博客所有文章)(四)
- 一淘搜索之网页抓取系统分析与实现(2)—redis + scrapy
- 一淘搜索之网页抓取系统分析与实现(3)—scrapy+webkit & mysql+django
- 初试Scrapy(四)—抓取和讯论坛关键字搜索的结果
- Scrapy抓取网页数据
- Python Scrapy抓取数据
- c++加载外部库文件探究
- 软件测试的艺术第三章阅读(一)
- Fragment的onCreateView和onActivityCreate之间的区别
- Android样式的开发:shape篇
- c++ prime plus 10
- Scrapy——抓取图片
- unity perspective透视摄像机和orthographic正交摄像机解析
- redis数据结构之一-简单动态字符串SDS
- 对于initialization failure 0x0000000c 的解决办法
- pthread_create()之前的属性设置
- 学习认识HTML基础入门Day01
- 编程思想之多线程与多进程(4)——C++中的多线程
- [luogu-1563]noip2016day1-T1 玩具谜题 题解
- php可变变量的用法