irpas技术客

999策略手机论坛_scrapy爬虫学习系列一:scrapy爬虫环境的准备_打野彭于晏i

irpas 8421

系列文章列表:

1.scrapy简介

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

1.1 scrapy基础架构

1.2 各个组件简介

Scrapy Engine

引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。 详细内容查看下面的数据流(Data Flow)部分。

调度器(Scheduler)

调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。

下载器(Downloader)

下载器负责获取页面数据并提供给引擎,而后提供给spider。

Spiders

Spider是Scrapy用户编写用于分析response并提取item(即获取到的item)或额外跟进的URL的类。 每个spider负责处理一个特定(或一些)网站。 更多内容请看 Spiders 。

Item Pipeline

Item Pipeline负责处理被spider提取出来的item。典型的处理有清理、 验证及持久化(例如存取到数据库中)。 更多内容查看 Item Pipeline 。

下载器中间件(Downloader middlewares)

下载器中间件是在引擎及下载器之间的特定钩子(specific hook),处理Downloader传递给引擎的response。 其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。更多内容请看 下载器中间件(Downloader Middleware) 。

1.3数据流(Data flow)

Scrapy中的数据流由执行引擎控制,其过程如下:

引擎打开一个网站(open a domain),找到处理该网站的Spider并向该spider请求第一个要爬取的URL(s)。

引擎从Spider中获取到第一个要爬取的URL并在调度器(Scheduler)以Request调度。

引擎向调度器请求下一个要爬取的URL。

调度器返回下一个要爬取的URL给引擎,引擎将URL通过下载中间件(请求(request)方向)转发给下载器(Downloader)。

一旦页面下载完毕,下载器生成一个该页面的Response,并将其通过下载中间件(返回(response)方向)发送给引擎。

引擎从下载器中接收到Response并通过Spider中间件(输入方向)发送给Spider处理。

Spider处理Response并返回爬取到的Item及(跟进的)新的Request给引擎。

引擎将(Spider返回的)爬取到的Item给Item Pipeline,将(Spider返回的)Request给调度器。

(从第二步)重复直到调度器中没有更多地request,引擎关闭该网站。

2.环境准备(主要是在window下)

2.1 安装python版本

2.2 安装scrapy

使用conda安装

conda install -c conda-forge scrapy

或者使用pip安装

pip install Scrapy

如果网络不好, 可以参考下这个地址:?https://·/microman/p/6107879.html

2.3 下载为win32

从http://sourceforge.net/projects/pywin32/ 选择和python版本和操作系统对应的版本下载安装。

官方描述了为何需要win32 :You need to install pywin32 because of this Twisted bug.

2.4提示c++ build(可选)

请安装cmd终端的提示,去指定的网址提示去下载build exe安装程序,安装后重新启动下,我们使用的python是cpython,所以依赖c的环境,如果你的电脑安装有vs2015,vs2017

这些c的环境都是有的。这里就可以不用安装了。

如果提示有这个信息。? error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

如果twisted无法安装,建议去这个地方https://pypi.python.org/pypi/Twisted/下载,自行安装。然后去安装scrapy。

2.5 配置环境变量

将你的python.exe 所在的目录和子目录Scripts目录都添加到PATH环境变量中去。

比如C:\Python2.7\;C:\Python2.7\Scripts\;

2.6 测试python 和scrapy

C:\Users\Administrator>python

Python3.6.1 |Anaconda custom (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64bit (AMD64)] on win32

Type"help", "copyright", "credits" or "license" formore information.>>>import scrapy>>>

2.7 ipython? 或者bpython的安装

ipython和bpython都是python的解析器,在cmd终端下提供

ipython的安装相对简单,使用如下命令即可安装

C:\Users\Administrator>conda install ipython

或者

C:\Users\Administrator>pip install ipython

bpython的安装有点问题:

环境准备好了。 那我们就可以开始scrapy的入门学习了。

2.8开发环境

我这里使用pycharm 软件去开发python, 当然小伙伴们也是可以使用其他的开发环境, 我这里推荐下打开也可以试试vs code 去搭建python开发环境。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #11 #scrapy基础架构12 #各个组件简介Scrapy