Scrapy框架


Scrapy是用纯Python实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架


Scrapy使用了Twisted异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求


在这里插入图片描述


  • Scrapy Engine:负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯、信号、数据传递等 (相当于总司令,发号司令)
  • Scheduler(调度器):负责接收引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎
  • Downloader(下载器):负责下载Scrapy Engine发送的所有Requests请求,并将其获取到的Response交还给Scrapy Engine,由引擎交给Spider来处理
  • Spider(爬虫):负责处理所有Responses(默认是交给def parse()这个函数处理的),从中分析提取数据,获取Item字段需要的数据,并将需要跟进URL提交给引擎,再次进入Scheduler(调度器)
  • Item Pipeline(管道):负责处理Spider中获取到的Item,并进行后期处理(详细分析、过滤、存储等)的地方
  • Downloader Middlewares(下载中间件):可以当做是一个可以自定义扩展下载功能的组件
  • Spider Middlewares (Spider中间件):可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Response和从Spider出去的Requests)

注意:只有当调度器中不存在任何request了,整个程序才会停止,也就是说,对于下载失败的URL,Scrapy也会重新下载


制作Scrapy爬虫一共需要4步:
  • 新建项目:新建一个新的爬虫项目
  • 明确目标(items.py):明确你想要抓取的目标 —— 在items.py文件中定制要爬取的值的键
  • 制作爬虫:制作爬虫开始爬取网页
  • 存储内容(pipelines.py):设计管道存储爬取内容

创建一个新的项目
scrapy startproject <项目名称>

# 进入到所创建的项目中
# 用genspider创建spider
scrapy genspider <spider名称> <要爬取的域名>

# scrapy genspider quotes quotes.toscrape.com

# tip
# 输入 "scrapy shell 网址" 可以入命令行交互模式哦

执行爬虫文件
scrapy crawl <spider名称>

文件保存
# 保存为csv文件,也可保存为其他格式
scrapy crawl <spider名称> -o <spider名称>.csv

(未完待续~)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值