一、Scrapy介绍
Scrapy
是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy
用途广泛,可以用于数据挖掘、监测和自动化测试。
——来源于百度百科
使用Scrapy爬取一个网页需四步骤:
- 创建一个Scrapy项目;
- 定义Item容器;
- 编写爬虫;
- 储存内容。
下图展现的是Scrapy的架构,包括组件及在系统中发生的数据流(图中绿色箭头)。
引擎(Scrapy Engine)
爬虫工作的核心,负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。
调度器(Scheduler)
从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。
下载器(Downloader)
下载器负责获取页面数据并提供给引擎,而后提供给spider。
爬虫(Spiders)
用户编写用于分析由下载器返回的response,并提取出item和额外跟进的URL的类。
Item Pipeline负责处理被spider提取出来的item。典型的处理有清理、验证及持久化(例如存取到数据库中)。
接下来是两个中间件,它们用于提供一个简便的机制,通过插入自定义代码来扩展Scrapy的功能。
下载器中间件(Downloader middlewares)
在引擎及下载器之间的特定钩子(specific hook),处理Downloader传递给引擎的response。
Spider中间件(Spider middlewares)
在引擎及Spider之间的特定钩子(specific hook),处理spider的输入(就是接收来自下载器的response)和输出(就是发送items给item pipeline以及发送requests给调度器)。
二、安装
命令窗口输入:pip install scrapy
,顺利的话能安装成功。安装完成之后输入scrapy
,出现如下图所示,才表明完全安装成功:
若不能一次性成功安装,则需安装对应版本的以下模块:
pip install wheel
pip install lxml
# 安装lxml3.8.0后,提示etree找不到;改安装3.7.3版才解决这个问题
pip install pyOpenSSL
然后,http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载相应版本的Twisted-17.5.0
。命令窗口切换到该文件所在目录,pip
安装,代码如下:
pip install Twisted‑17.5.0‑cp36‑cp36m‑win32.whl # 包含后缀的文件全名
这样,Scrapy
应该就能正常安装了。
但是,有的电脑还是Scrapy
不能成功运行,提示没有win32api
,则需安装win32py
,下载地址:https://sourceforge.net/projects/pywin32/files/ ,下载相应版本的exe文件,运行,安装成功后,Scrapy
就能成功运行了。
以上是我在安装过程中遇到的问题,如果有其他错误,欢迎交流探讨!
安装只是第一步,后续将用Scrapy
创建项目,以便熟悉。