1. scrapy框架
1.1 scrapy概述
-
定义
异步处理框架,可配置和可扩展程度非常高,Python中使用最广泛的爬虫框架
-
安装
【1】Ubuntu安装 sudo pip3 install Scrapy 【2】Windows安装 python -m pip install Scrapy 如果安装过程中报如下错误 : 'Error: Microsoft Vistual C++ 14.0 is required xxx' 则安装Windows下的Microsoft Vistual C++ 14.0 即可(笔记spiderfiles中有)
1.2 scrapy组件及流程
-
Scrapy框架五大组件
【1】引擎(Engine)----------整个框架核心 【2】爬虫程序(Spider)------数据解析提取 【3】调度器(Scheduler)-----维护请求队列 【4】下载器(Downloader)----获取响应对象 【5】管道文件(Pipeline)-----数据入库处理 【两个中间件】拦截 下载器中间件(Downloader Middlewares) 引擎->下载器,包装请求(随机代理等) 蜘蛛中间件(Spider Middlewares) 引擎->爬虫文件,可修改响应对象属性
-
scrapy爬虫工作流程
【1】爬虫项目启动,由引擎向爬虫程序索要第一批要爬取的URL,交给调度器去入队列 【2】调度器处理请求后出队列,通过下载器中间件交给下载器去下载(request) 【3】下载器得到响应对象后,通过蜘蛛中间件交给爬虫程序 【4】爬虫程序进行数据提取: 4.1) 数据交给管道文件去入库处理 4.2) 对于需要继续跟进的URL,再次交给调度器入队列,依次循环
1.3scrapy命令
【1】创建爬虫项目 : scrapy startproject 项目名
【2】创建爬虫文件
2.1) cd 项目文件夹
2.2) scrapy genspider 爬虫名 域名
【3】运行爬虫
scrapy crawl 爬虫名
1.4 scrapy目录结构
-
scrapy项目目录结构
Baidu # 项目文件夹 ├── Baidu # 项目目录 │ ├── items.py # 定义数据结构 │ ├── middlewares.py # 中间件 │ ├── pipelines.py # 数据处理 │ ├── settings.py # 全局配置 │ └── spiders │ ├── baidu.py # 爬虫文件 └── scrapy.cfg # 项目基本配置文件
-
settings.py常用变量
【1】USER_AGENT = 'Mozilla/5.0' 【2】ROBOTSTXT_OBEY = False 是否遵循robots协议,一般我们一定要设置为False 【3】CONCURRENT_REQUESTS = 32 最大并发量,默认为16 【4】DOWNLOAD_DELAY = 0.5 下载延迟时间: 访问相邻页面的间隔时间,降低数据抓取的频率 【5】COOKIES_ENABLED = False | True Cookie默认是禁用的,取消注释则 启用Cookie,即:True和False都是启用Cookie 【6】DEFAULT_REQUEST_HEADERS = {} 请求头,相当于requests.get(headers=headers)
1.5 scrapy爬虫步骤
【1】新建项目和爬虫文件
scrapy startproject 项目名
cd 项目文件夹
新建爬虫文件 :scrapy genspider 文件名 域名
【2】明确目标(items.py)
【3】写爬虫程序(文件名.py)
【4】管道文件(pipelines.py)
【5】全局配置(settings.py)
【6】运行爬虫
6.1) 终端: scrapy crawl 爬虫名
6.2) pycharm运行
a> 创建run.py(和scrapy.cfg文件同目录)
from scrapy import cmdline
cmdline.execute('scrapy crawl maoyan'.split())
b> 直接运行 run.py 即可