爬虫之利用scrapy进行文件爬取小白教程

一:利用scrapy提供的管道爬取

  1. 创建爬虫文件

    scrapy genspider file_save
    
  2. settings.py加入文件相关的管道类

    ITEM_PIPELINES = {'scrapy.pipelines.files.FilesPipeline':300,
    }# 下载文件时需配置路径
    FILES_STORE = "files"
    
  3. 编写file_save.py文件

    import scrapy# 爬取matplotlib网站中的文件class FileSaveSpider(scrapy.Spider):name = 'file_save'# allowed_domains = ['file_save.com']start_urls = ['https://matplotlib.org/examples/']def parse(self, response):# 获取包含了所有文件对象的列表msg_list = response.xpath('//li[@class="toctree-l2"]')# 循环取出每一个文件对象for msg in msg_list:# 提取文件对象中的href属性href = msg.xpath('./a/@href').extract_first()# 拼接完整路径,scrapy提供了response.urljoin提供了一个urljoin方法用于拼接路径,及其方便full_href = response.urljoin(href)# 设置回调函数get_file,发起二次请求,从链接中获取文件yield scrapy.Request(url=full_href,callback=self.get_file)
    
  4. 编写回调函数get_file

    def get_file(self,response):# 获取文件下载的地址        file_url = response.xpath('//div[@class="section"]/p/a/@href').extract_first()# 拼接完整的文件下载地址full_file_url = response.urljoin(file_url)
    
  5. 编写items.py文件,定义字段名

    class FileSave(scrapy.Item):# 定义文件urlfile_urls = scrapy.Field()
    
  6. 在回调函数中实例化item对象,添加字段数据

    def get_file(self,response):# 获取文件下载的地址        file_url = response.xpath('//div[@class="section"]/p[1]/a[1]/@href').extract_first()# 拼接完整的文件下载地址full_file_url = response.urljoin(file_url)# ----------------------------------------------------------------   # 实例化item对象item = FileSave()item["file_urls"] = [full_file_url]yield item# ----------------------------------------------------------------

    爬出的文件名字都是经过加密的,我们需要修改文件的名字,所以我们需要在管道文件中重写父类FilesPipeline中的file_path方法

二:自定义管道爬取

  1. pipelines.py编写
from scrapy.pipelines.files import FilesPipeline
class SaveFilePipeline(FilesPipeline):def file_path(self,request,response=None,info=None):# # 文件名为请求url的最后一部分file_name = request.url.split('/')[-1]return f'full/{file_name}'
  1. settings.py编写

​ 把上面加入的scrapy管道注释掉

ITEM_PIPELINES = {# 'scrapy.pipelines.files.FilesPipeline':300,'reptile.pipelines.SaveFilePipeline': 300,
}

​ 自定义文件名爬取完毕

爬虫之Scrapy文件爬取相关推荐

  1. scrapy获取a标签的连接_python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求[前期准备] 2.分析及代码实现(1)获取五大板块详情页url(2)解析每个板块(3)解析每个模块里的标题中详情页信息 点击此处,获取 ...

  2. 19. python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求 [前期准备] 2.分析及代码实现 (1)获取五大板块详情页url (2)解析每个板块 (3)解析每个模块里的标题中详情页信息 1.需 ...

  3. python爬虫——用Scrapy框架爬取阳光电影的所有电影

    python爬虫--用Scrapy框架爬取阳光电影的所有电影 1.附上效果图 2.阳光电影网址http://www.ygdy8.net/index.html 3.先写好开始的网址 name = 'yg ...

  4. 爬虫之Scrapy框架爬取彼岸壁纸案例分享

    爬虫之Scrapy框架爬取彼岸壁纸案例分享 前段时间在网上看到有人爬取了彼岸壁纸的案例,由于爬取的图片较多,爬取速度感觉不快,所以就自己写了个Scrapy框架,个人觉得爬取速度快多了. 代码如下. 文 ...

  5. 14. python爬虫——基于scrapy框架爬取糗事百科上的段子内容

    python爬虫--基于scrapy框架爬取糗事百科上的段子内容 1.需求 2.分析及实现 3.实现效果 4.进行持久化存储 (1)基于终端指令 (2)基于管道 [前置知识]python爬虫--scr ...

  6. 爬虫:Scrapy分类爬取苏宁易购书城

     目录 1.scrapy框架概述 2.Scrapy爬取苏宁图书案例 3.设置配置文件 ​ 4.如何获取USER_AGENT ​ 5.编写items.py文件 6.编写爬虫suning.py程序 1.s ...

  7. 【python 爬虫】 scrapy 入门--爬取百度新闻排行榜

    scrapy 入门–爬取百度新闻排行榜 环境要求:python2/3(anaconda)scrapy库 开发环境:sublime text + windows cmd 下载scrapy(需要pytho ...

  8. python爬虫利用Scrapy框架爬取汽车之家奔驰图片--实战

    先看一下利用scrapy框架爬取汽车之家奔驰A级的效果图 1)进入cmd命令模式下,进入想要存取爬虫代码的文件,我这里是进入e盘下的python_spider文件夹内 C:\Users\15538&g ...

  9. 数据采集与存储案例——基于Python爬虫框架Scrapy的爬取网络数据与MySQL数据持久化

    此案例需要预先安装pymsql python3.7.4 scrapy2.7.1 一.安装scrapy框架 1.使用pip命令安装scrapy pip install scrapy 在这里下载太慢可以使 ...

  10. [Python爬虫]使用Scrapy框架爬取微博

    Scrapy框架爬取微博 简介 包 Scrapy框架 main.py(启动文件) setting.py(配置文件) pq.py(项目文件) 话题小组模块 模板 图片模块 用户模块 视频模块(未找到视频 ...

最新文章

  1. (一)硕博生常用的中文文献检索方式推荐
  2. 2.5 网络中的网络及1x1卷积-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  3. WDS 自动化部署安装 win2008 服务器实验
  4. CentOS 7安装GNOME图形界面并设置默认启动
  5. Twitch如何实现转码比FFmpeg性能提升65%?(下)
  6. 使用Lambda的装饰设计模式
  7. python网页填表教程_PythonSpot 中文系列教程 · 翻译完成
  8. openGauss北京Meetup成功举办,“产学研用”合力共建主流根社区(附:视频回放PPT)...
  9. mac android 投屏幕,将android/ios屏幕投射到windows/mac的良好参考
  10. FIRST集和FOLLOW集的构造
  11. CSS-伪类选择器(未完待续。。。)
  12. uniapp下载文件保存到手机本地
  13. PreferenceScreen修改背景颜色
  14. Fragstats计算景观生态指数
  15. 商务与经济统计学习 --概率
  16. msdia80.dll文件出现在磁盘根目录下的解决方案(转)
  17. 名帖204 蔡襄 行书《行书帖选》
  18. linux上创建loopback接口,在python中的特定接口的linux loopback接口
  19. linux查看服务器网络延迟,ECS Linux下的qperf测量网络带宽和延迟的具体步骤
  20. 汽车防抱死系统_ABS_建模与模糊PID控制研究

热门文章

  1. atom tasklist could not be spawned的解决办法
  2. linux的PS3模拟器下载,PS3模拟器
  3. 10个方法教你提升表达能力
  4. 用Threejs做一只会动的3D玉兔祝大家中秋快乐
  5. 激励视频广告 Android,激励视频广告
  6. 110 AddressBook
  7. 《疯狂原始人》温馨而搞笑片段截图
  8. sox源码分析:sox_find_effect()
  9. 杨幂晒七月孕肚揭怀孕只胖baby不胖身材的女星
  10. 服务器设置temp文件夹权限,服务器windows temp 权限设置