Scrapy 是 Python 领域专业的爬虫开发框架,已经完成爬虫程序的大部分通用工具,因此 Scrapy 开发爬虫项目既简单又方便。
异步处理框架,可配置和可扩展程度非常高,Python中使用最广泛的爬虫框架
安装依赖库
sudo apt-get install python-dev build-essential libssl-dev libffi-dev liblxml2 libxml2-dev libxslt1-dev zlib1g-dev
升级pyasn1模块(可选)
sudo pip3 install pyasn1==0.4.4
安装Scrapy
sudo pip3 install Scrapy
验证安装完成
scrapy version
见下面的Windows安装方式
conda install Scrapy
| 组件 | 英文名 | 功能 |
|---|---|---|
| 引擎 | Engine | 整个框架的核心 |
| 调度器 | Scheduler | 接收从引擎发过来的URL,入队列 |
| 下载器 | Downloader | 下载网页源码,返回爬虫程序 |
| 项目管道 | Item Pipeline | 数据处理 |
| 下载器中间件 | Downloader Middlewares | 处理引擎与下载器直接按的请求和响应 |
| 蜘蛛中间件 | Spider Middlewares | 处理爬虫程序和输入的响应和输出结果以及新的请求 |
| Item | 定义爬取结果的数据结构,爬取的数据会被数值为Item对象 |
sequenceDiagram
participant 爬虫程序
participant 引擎
participant 调度器
participant 下载器
participant 管道文件
爬虫程序->>引擎: 发送Urls
引擎->>调度器: Urls入队列
loop 多线程任务
调度器-->>引擎: Url
引擎->>下载器: Url(经过下载器中间件)
下载器->>下载器: 网络请求
下载器-->>引擎: reponse
引擎-->>爬虫程序: response(经过蜘蛛中间件)
爬虫程序->>爬虫程序: xpath解析
爬虫程序->>引擎: 解析后的数据+(新的Url)
引擎->>管道文件: 解析后的数据
管道文件->>管道文件: 持久化
引擎->>调度器: 新的Urls进队列
end
新建项目
scrapy startproject Lianjia