什么是Scrapy?
- Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们需要实现少量代码量,就可能够快速的抓取到数据的内容
- Scrapy使用了Twisted异步网络架构来处理网络通讯,可以加快我们的下载速度,不要自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。
异步与非阻塞的区别?
阻塞和非阻塞是不同的,阻塞是通过函数对接口的调用,第一次调用的函数,返回结果后再次调用。而阻塞是调用的过程中程序直接运行,不需要等待返回的数据。
异步:调用在发出之后,这个调用就直接返回,不管有无结果。
非阻塞:关注的是程序在等调用结果(消息、返回值)时的状态,指不能立刻得到结果之前,该调用不会阻塞当前的线程。
Scrapy的使用
导入
import Scrapy
测试xpath/css表达式
response.xpath("表达式") [ [0], .extract(), .extract_first() ]
response.css("表达式") [ [0], .extract(), .extract_first() ]
Scrapy项目文件的构成
几个爬虫流程
Scrapy的爬虫流程
Scrapy的爬虫流程
- 创建一个scrapy项目:scrapy startproject mySpider
- 生成一个爬虫:scrapy genspider + <爬虫名字> + <允许爬虫的域名>
- 提取数据:完善spider,使用xpath方法
- 保存数据:pipeline中保存数据
下一讲:如何搭建scrapy框架,以及如何使用