scrapy中的ImagePipeline下载图片到本地、并提取本地的保存地址
- 通过scrapy内置到ImagePipeline下载图片到本地
- 在settings中打开 ITEM_PIPELINES的注释,并在这里面加入
'scrapy.pipelines.images.ImagesPipeline':5,
#后面的数字代表执行优先级 ,当执行pipeine的时候会按照数字由小到大执行 - 在settings中加入
IMAGES_URLS_FIELD ="image_url" #image_url是在items.py中配置的网络爬取得图片地址
#配置保存本地的地址
project_dir=os.path.abspath(os.path.dirname(__file__)) #获取当前爬虫项目的绝对路径
IMAGES_STORE=os.path.join(project_dir,'images') #组装新的图片路径
还有很多设置有特殊需要的话可以用哦 (详情可以去imagepipeine源码查看) IMAGES_MIN_HEIGHT=100 #设定下载图片的最小高度 IMAGES_MIN_WIDTH=100 #设定下载图片的最小宽度可能会报错:
ModuleNotFoundError: No module named 'PIL'
这时候安装pip install pillow库就可以了
- 在settings中打开 ITEM_PIPELINES的注释,并在这里面加入
- 获取图片保存本地的地址
- 下载图片,如果想获取图片保存本地的地址,那么就需要重写ImagesPipeline,并且在settings中调用重写的pipeline
#既然要重写,记得提前引入
from scrapy.pipelines.images import ImagesPipeline class ArticleImagePipeline(ImagesPipeline):
# 重载ImagePipeline中的item_completed方法,获取下载地址
def item_completed(self, results, item, info): for ok,value in results: #通过断点可以看到图片路径存在results内 image_file_path=value['path'] #将路径保存在item中返回 item['front_image_path']=image_file_path
return item
- 下载图片,如果想获取图片保存本地的地址,那么就需要重写ImagesPipeline,并且在settings中调用重写的pipeline
scrapy中的ImagePipeline下载图片到本地、并提取本地的保存地址的更多相关文章
- 通过scrapy内置的ImagePipeline下载图片到本地、并提取本地保存地址
1.通过scrapy内置的ImagePipeline下载图片到本地 2.获取图片保存本地的地址 1.通过scrapy内置的ImagePipeline下载图片到本地 1)在settings.py中打开 ...
- 第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签
第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签 标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需 ...
- scrapy 在爬取过程中抓取下载图片
先说前提,我不推荐在sarapy爬取过程中使用scrapy自带的 ImagesPipeline 进行下载,是在是太耗时间了 最好是保存,在使用其他方法下载 我这个是在 https://blog.csd ...
- 四 web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签
标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需要导入模块:from scrapy.selector import HtmlXPa ...
- scrapy操作mysql/批量下载图片
1.操作mysql items.py meiju.py 3.piplines.py 4.settings.py -------------------------------------------- ...
- opencv2.4.13+python2.7学习笔记--opencv中的Gui特性--图片:读图像,显示图像,保存图像
阅读对象:可以配置opencv+Python环境的任何人,毕竟写这篇文章的人就是小白. 1.环境说明 1.1opencv版本: 1.2Python版本: 1.3系统:win7 注: (1)opencv ...
- phantomjs集成到scrapy中,并禁用图片,切换UA
phantomjs是一个没有界面的浏览器,支持各种web标准,提供DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG,对于爬取一些经过js渲染的页面非常有用.但是phantomj ...
- scrapy批量下载图片
# -*- coding: utf-8 -*- import scrapy from rihan.items import RihanItem class RihanspiderSpider(scra ...
- 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)
前一阵子我们介绍了如何启动Scrapy项目以及关于Scrapy爬虫的一些小技巧介绍,没来得及上车的小伙伴可以戳这些文章: 手把手教你如何新建scrapy爬虫框架的第一个项目(上) 手把手教你如何新建s ...
随机推荐
- vue v-show指令
demo: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- bzoj2322 梦想封印
题意和题解见思路索引. 标程及易错点: #include<bits/stdc++.h> using namespace std; typedef long long ll; ll read ...
- [转]SpringMVC框架入门配置 IDEA下搭建Maven项目
初衷:本人初学SpringMVC的时候遇到各种稀奇古怪的问题,网上各种技术论坛上的帖子又参差不齐,难以一步到位达到配置好的效果,这里我将我配置的总结写到这里供大家初学SpringMVC的同僚们共同学习 ...
- 【JZOJ6360】最大菱形和(rhombus)
description analysis 容易想到把原矩阵翻转\(45°\),然后每个数再用\(0\)隔开 然后就变成了求最大子正方形,求完二维前缀和之后就很好做了 code #pragma GCC ...
- iOS开发之SceneKit框架--加载多个模型.dae/.scn文件
1.通过SCNGeometry或子类SCNParametricGeometry创建 相关链接:iOS开发之SceneKit框架--SCNGeometry.h iOS开发之SceneKit框架--SCN ...
- python 安装bs4
1, 下载地址https://www.crummy.com/software/BeautifulSoup/#Download ------------------------------------- ...
- ssm项目中使用拦截器加上不生效解决方案
在很多时候,需要拦截器来帮助我们完成一些特定的工作,比如获取请求的参数,本身在request这种获取数据就是一次磁盘的io, 如果在filter中获取了参数,那么在controller中就不能获取相关 ...
- Nodejs之路(三)—— Nodejs之Express框架
Express 原生的 http 在某些方面表现不足以应对我们的开发需求,所以我们需要使用框架来加快我们的开发效率.框架的目的就是提高效率,让我们的代码更高度统一 在Node 中,有很多 Web 开发 ...
- jQuery鼠标拖曳改变div大小(模拟textarea右下角拖曳)
jQuery.fn.extend({ drag: function() { $(document).off("mouseup.drag").on("mouseup.dra ...
- 创建 linuxrc 文件
创建 linuxrc,加入如下内容: [arm@localhost my_rootfs]#vi linuxrc #!/bin/sh #挂载/etc 为 ramfs, 并从/mnt/etc 下拷贝文件到 ...