Python Scrapy爬虫框架
Scrapy爬虫框架
安装Scrapy
pip install scrapy
安装后测试
执行 scrapy -h
注意:
1.在ubyntu 上安装 scrapy 之前,需要先安装以下依赖:
sudo apt-get install python-dev python-pip libxm12-dev libxsltl-dev zlibig-dev libffi-dev,然后再通过pip install scrapy安装。
2.如果在 windows 系统下,提示这个错误 ModuleNotFoundError: No module name 'win32api',那么使用以下命令可以解决:pip install pypiwin32
scrapy介绍
scrapy不是一个函数功能库 而是 爬虫框架
爬虫框架
爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。
爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。
“5+2”结构
Engine(不需要用户修改)
控制所有模块之间的数据流
根据条件触发
Downloader(不需要用户修改)
根据请求下载网页
Scheduler(不需要用户修改)
对所有爬取请求进行调度管理
Downloader Middleware
目的:实施Engine、Scheduler和Downloader之间进行用户可配置的控制
功能:修改、丢弃、新增请求或响应
Spider(需要用户编写配置代码)
解析Downloader返回的响应(Response)
产生爬取项(scraped item)
产生额外的爬取请求(Request)
Item Pipelines(需要用户编写配置代码)
以流水线方式处理Spider产生的爬取项
由一组操作顺序组成,类似流水线,每个操作是一个Item Pipeline类型
可能操作不包括:清理、检验和查重爬取项中的HTML数据。将数据存储到数据库
Spider Middleware
目的:对请求和爬取项的再处理
功能:修改、丢弃、新增请求或爬取项
Scrapy命令行
scrapy是为持续运行设计的专业爬虫框架,提供操作的Scrapy命令行。
Scrapy命令行格式
** > scrapy < command > [options] [args]
command:Scrapy命令
Scrapy常用命令
命令 | 说明 | 格式 |
---|---|---|
startproject | 创建一个新工程 | scrapy startproject < name > [dir] |
genspider | 创建一个爬虫 | scrapy genspider [options] < name > < domian > |
settings | 获取爬虫配置信息 | scrapy settings [options] |
crawl | 运行一个爬虫 | scrapy crawl < spider > |
list | 列出工程中所有爬虫 | scrapy list |
shell | 启动URL调试命令行 | scrapy shell [url] |
实例
演示HTML地址
演示HTML页面地址:http://python123.io/ws/demo.html
文件名称:demo.html
产生步骤
步骤1:建立以Scrapy爬虫工程
生成的工程目录
python123demo/ 外层目录
-
scrapy.cfg 部署Scrapy爬虫的配置文件
-
python123demo/ Scrapy框架的用户自定义python代码
-
_ init _.py 初始化脚本
-
items.py Items代码模板,用来存放爬取下来的数据模型(继承类)
-
middlewares.py Middlewares代码模板,用来存放各种中间件的文件(继承类)
-
pipelines .py Piplines代码模板,用来将items的模型存储到本地磁盘中(继承类)
-
settings.py Scrapy爬虫的配置文件,爬虫的配置信息(比如请求头、多久发送一次请求、ip代理池等)
-
spiders/ Spiders代码模板目录,所以爬虫都需存放在这里(继承类)
- _ init _.py 初始文件,无需修改
- _ pycache_/ 缓存目录,无需修改
-
步骤2:在工程中产生一个Scrapy爬虫
在\python123demo\spiders目录下生产demo.py文件
demo.py文件
parse()用于处理响应,解析内容形成字典,发现新的URL爬取请求。
步骤3:配置产生的spider爬虫
步骤4:运行爬虫,获取网页