1.爬虫框架结构
- 5+2结构:
Engine:框架核心,控制模块之间的数据流,根据条件触发事件
Downloader:根据请求下载网页
Scheduler:对爬取请求进行调度管理
Spider:框架核心,解析Downloader返回的响应,生成提取信息和新的请求,需要用户编写配置代码
Item Pipelines:清洗、检验和存储数据,需要用户编写配置
Downloader Middleware:下载器中间件,处理引擎与下载器之间请求与响应,可用于修改request请求和response响应
Spider Middleware:spider中间件,对请求和爬取项的再处理
2.scrapy.http.Request()
Request对象表示一个HTTP请求
属性和方法:
- .url:请求对应的url地址
- .method:对应的请求方法,‘get’,'post’等
- .headers: 字典类型的请求头
- .body: 请求主体,字符串类型
- .meta: 用户添加的拓展信息
- .copy(): 复制该请求
3.scrapy.http.Response()
Response对象表示一个HTTP响应
属性和方法:
- .url:对应的url地址
- .status:状态码,默认200
- .headers: 响应的头部
- .body: 响应主体,字符串类型
- .flags: 一组标记
- .request: Response对应的Request对象
- .copy(): 复制该响应
4.Item()类,scrapy.item.Item()
Item对象表示从一个HTTP页面中提取信息,是类字典类型
5.解析网页的主要方式
- Beautiful Soup
- Xpath
- re
- CSS选择器
- lxml