Scrapy框架介绍:
写一个爬虫,需要做很多的事情。比如:发送网络请求、数据解析、数据存储、反反爬虫机制(更换ip代理、设置请求头等)、异步请求等。这些工作如果每次都要自己从零开始写的话,比较浪费时间。因此Scrapy把一些基础的东西封装好了,在他上面写爬虫可以变的更加的高效(爬取效率和开发效率)。因此真正在公司里,一些上了量的爬虫,都是使用Scrapy框架来解决。
Scrapy框架模块功能:
- Scrapy Engine(引擎):Scrapy框架的核心部分。负责在Spider和ItemPipeline、Downloader、Scheduler中间通信、传递数据等。
- Spider(爬虫):发送需要爬取的链接给引擎,最后引擎把其他模块请求回来的数据再发送给爬虫,爬虫就去解析想要的数据。这个部分是我们开发者自己写的,因为要爬取哪些链接,页面中的哪些数据是我们需要的,都是由程序员自己决定。
- Scheduler(调度器):负责接收引擎发送过来的请求,并按照一定的方式进行排列和整理,负责调度请求的顺序等。
- Downloader(下载器):负责接收引擎传过来的下载请求,然后去网络上下载对应的数据再交还给引擎。
- Item Pipeline(管道):负责将Spider(爬虫)传递过来的数据进行保存。具体保存在哪里,应该看开发者自己的需求。
- Downloader Middlewares(下载中间件):可以扩展下载器和引擎之间通信功能的中间件。
Spider Middlewares(Spider中间件):可以扩展引擎和爬虫之间通信功能的中间件。
Scrapy安装和文档:
- Scrapy官方文档:http://doc.scrapy.org/en/latest
- Scrapy中文文档:http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html
安装
通过pip install scrapy
即可安装。
- 在ubuntu上安装scrapy之前,需要先安装以下依赖:
sudo apt-get install python3-dev build-essential python3-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
,然后再通过pip install scrapy
安装。 - 如果在windows系统下,提示这个错误ModuleNotFoundError: No module named ‘win32api’,那么使用以下命令可以解决:
pip install pypiwin32
。
博主在windows上面通过pip install scrapy
安装过程中出现如下错误
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools
去这个网址 https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载对应twisted版本
其中cp后面是python版本,amd64代表64位:
例如Twisted‑18.9.0‑cp36‑cp36m‑win32.whl 表示 python3.6版本 32位系统
(在命令行输入 python --version即可查看你的当前python版本号)
下载好后,打开命令行,cd到刚刚下载好的.whl 文件处。
执行命令:pip install Twisted-18.9.0-cp36-cp36m-win32.whl
安装成功后:
重新执行命令
pip install Scrapy
安装 完成。
问题补充
注意:
pip install Twisted-18.9.0-cp36-cp36m-win32.whl
在安装过程中如果出现如下错误:
Could not find a version that satisfies the requirement idna>=2.5 (from hyperlink>=17.1.1->Twisted==18.9.
因为Scrapy需要很多支持 例如 lxml ,所以需要先执行pip install scrapy
命令
所以 虽然知道会因为 Twisted未安装会报错,但是在报错前,已经安转了一些支持的东西。
然后在安转 pip install Twisted-18.9.0-cp36-cp36m-win32.whl
最后在执行pip install scrapy
创建爬虫
- 创建项目:
scrapy startproject [爬虫的名字]
- 创建爬虫:进入到项目所在的路径,执行命令:
scrapy genspider [爬虫名字] [爬虫的域名]
- 创建crawl爬虫:进入到项目所在的路径,执行命令:
scrapy genspider -t crawl [爬虫名字] [爬虫域名]
总结:
scrapy最终的安安装步骤:
- 执行
pip install scrapy
命令去安装一些支持库 - 下载Twisted-18.9.0-cpxx-cpxxm-winxx.whl文件并使用
pip install Twisted-18.9.0-cpxx-cpxxm-winxx.whl
安装 - 再次执行
pip install scrapy
完成安装。