Scrapy 下载文件和图片
我们学习了从网页中爬取信息的方法,这只是爬虫最典型的一种应用,除此之外,下载文件也是实际应用中很常见的一种需求,例如使用爬虫爬取网站中的图片、视频、WORD文档、PDF文件、压缩包等。
1、FilesPipeline 和 ImagesPipeline
Scrapy 框架内部提供了两个 Item Pipeline,专门用于下载文件和图片:
(1)FilesPipeline
(2)ImagesPipeline
我们将这两个 Item Pipeline 看做特殊的下载器,用户使用时只需要通过一个特殊字段将要下载文件或图片的 url 传递给它们,它们会自动将文件或图片下载到本地,并将下载结果信息存入 item 的另一个特殊字段,以便用户下载导出文件中查阅。
图片也是文件,所以下载图片本质也是下载文件,ImagesPipeline 是 FilesPipeline 的子类,使用上和 FilesPieline 大同小异,只是在使用的 item 字段个配置上略有差别
| FilesPipeline | ImagesPipeline | |
| 导入路径 | scrapy.pipeline.files.FilesPipeline | scrapy.pipeline.files.ImagesPipeline |
| Item 字段 | file_urls, files | image_urls, images |
| 下载目录 | FILES_STORE | IMAGE_STORE |
<html>
<body>
<a href = '/book/sg.pdf'>下载《三国演义》</a>
<a href = '/book/shz.pdf'>下载《水浒传》</a>
<a href = '/book/hlm.pdf'>下载《红楼梦》</a>
<a href = '/book/xyj.pdf'>下载《西游记》</a>
</body>
</html>
Scrapy 下载文件和图片的更多相关文章
- scrapy中下载文件和图片
下载文件是一种很常见的需求,例如当你在使用爬虫爬取网站中的图片.视频.word.pdf.压缩包等的时候 scrapy中提供了FilesPipeline和ImagesPipeline,专门用来下载文件和 ...
- 使用URLConnection下载文件或图片并保存到本地
有时候需要从网络上面下载图片到本地进行保存,代码如下: package com.jointsky.jointframe.test; import java.io.FileOutputStream; i ...
- python网络爬虫之使用scrapy下载文件
前面介绍了ImagesPipeline用于下载图片,Scrapy还提供了FilesPipeline用与文件下载.和之前的ImagesPipeline一样,FilesPipeline使用时只需要通过it ...
- python下载文件(图片)源码,包含爬网内容(爬url),可保存cookie
#coding=utf-8 ''' Created on 2013-7-17 @author: zinan.zhang ''' import re import time import httplib ...
- 关于scrapy下载文件重命名的办法以及对应url没有文件后缀的办法
https://www.jianshu.com/p/d1bb28cbb6a8 scrapy中负责下载文件的是class MyFilesPipeline(FilesPipeline)类 其中负责下载文件 ...
- Nginx模块学习之————accesskey权限模块使用(Nginx防盗链详细解说),防止别人下载文件和图片
nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链 1.具体安装教程:http://www.cnblogs.com/tinywan/p/5983694. ...
- asp.net 下载文件(图片、word、excel等)
string filePath = Server.MapPath("~/excel.xlsx"); if (File.Exists(filePath)) { FileStream ...
- MVC 生成图片,下载文件(图片不存在本地,在网上下载)
/// <summary> /// 生成图片 /// </summary> /// <param name="collection"></ ...
- 【WPF/C#】测试下载文件(图片)
需求:界面上有一个按钮,点击后联网下载一张PNG图片,保存到本地指定路径. 重要参考: http://stackoverflow.com/questions/24797485/how-to-downl ...
随机推荐
- Django ORM中的模糊查询
ORM映射 什么是ORM映射?在笔者认为就是对SQL语句的封装,所写语句与SQL对应语句含义相同,使开发更加简单方便,不过也是存在弊端的,使程序运行效率下降.例如: UserInfo.objects. ...
- 150元搭建微型家庭服务器(支持DLAN,samda,aria2)
概览 看到有人用树莓派搭家庭服务器,感觉太不值了,300块都可以搭一台性能还可以的低功耗x86主机了,我搭一个100块顶多的服务器玩玩. 0.Linux服务器学习(比虚拟机双系统舒服多了) 1.流媒体 ...
- 03-Docker-Engine详解
目录 03-Docker-Engine详解 摆脱 LXC 摒弃大而全的 Docker daemon 开放容器计划(OCI)的影响 runc containerd 启动一个新的容器 该模型的显著优势 s ...
- leetCode练题——38. Count and Say
1.题目 38. Count and Say The count-and-say sequence is the sequence of integers with the first five te ...
- leetCode练题——27. Remove Element
1.题目 27. Remove Element——Easy Given an array nums and a value val, remove all instances of that valu ...
- 计算机基础 - 动态规划、分治法、memo
动态规划 ≈ 分治法 + memo def memo(func): cache = {} def wrap(*args): if args not in cache: cache[args] = fu ...
- ndarray数据类型及转换
ndarray数据类型 Ndarray的基本数据类型如下图所示,数据类型的命名采用“类型名+数字”的形式表示,数字表示数据的比特位长.在计算机中比特位bit是表示数据最小的单位,1个字节Byte的长度 ...
- 吴裕雄--天生自然Python Matplotlib库学习笔记:matplotlib绘图(1)
Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件.它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式. from pylab import * size = 128, ...
- Nexus-FEX基础配置
1.FEX基本配置feature fex fex 100 pinning max-links 1 >>>>该值默认就是1 description "FEX100 ...
- leetcode 0217
目录 ✅ 682. 棒球比赛 描述 解答 cpp py ✅ 999. 车的可用捕获量 描述 解答 c other java todo py ✅ 118. 杨辉三角 描述 解答 cpp py ✅ 258 ...