selenium和 Scrapy对接
爬取某些需要动态加载的页面,使用selenium模块是诸多方法中的一个,直接使用selenium模块并不复杂,
在Scrapy框架下依然可以使用该模块解决动态加载的问题.
首先再熟悉下流程
Scrapy的基本流程图如下
-
引擎负责控制系统所有组件之间的数据流,并在某些动作发生时触发事件。
-
调度器(用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回.
-
用于下载网页内容, 并将网页内容返回给EGINE
-
SPIDERS用来解析responses,并且提取items,或者发送新的请求
-
管道在items被提取后负责处理它们,主要包括清理、验证、持久化(比如存到数据库)等操作
-
下载器中间件位于Scrapy引擎和下载器之间,主要用来处理从EGINE传到DOWLOADER的请求request,已经从DOWNLOADER传到EGINE的响应response,
-
爬虫中间件位于EGINE和SPIDERS之间,主要工作是处理SPIDERS的输入(即responses)和输出(即requests)