测试开发Pythonpython加油站

Python爬虫实战-使用Scrapy框架爬取土巴兔(一)

2017-03-18  本文已影响3542人  imflyn

Scrapy is an application framework for crawling web sites and extracting structured data which can be used for a wide range of useful applications, like data mining, information processing or historical archival.

上面这段话取自官方文档。翻译过来就是:
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
Scrapy可以说是目前Python爬虫框架中最成熟最稳定的框架之一,所以我们使用Scrapy框架来做爬虫开发可以说是好钢用在刀刃上。

该系列其它文章


该篇文章主要讲Scrapy架构工作流程优点开发环境的搭建,接下来我们进入正题。

一.初识Scrapy

Scrapy架构图:


Scrapy架构图

通过清晰的架构图我们可以了解到Scrapy运作的流程。

1.Scrapy的五大模块:
2.Scrapy的三个中间件起到串联各个模块的作用:
3.Scrapy的工作流程:
4.Scrapy的优点:

我们为什么要使用Scrapy,而不使用其他爬虫框架,除了成熟稳定之外,还有很多其他优势。

二.开发环境的搭建

1.安装python环境

目前Scrapy同时支持python2.7版本和python3.3以上,所以可以根据自己需要选择不同的Python版本。本文针对的开发环境使用的是python3.5,如果你是初学者建议使用python3开始学习,不用考虑python的许多历史包袱。

Python各个版本下载地址:https://www.python.org/downloads

2.安装Scrapy

由于官方文档有Scrapy安装教程,这里不做详细说明,安装方法可以参考官方文档。
这里说下Windows下可能会遇到的问题,因为Scrapy依赖部分第三方框架,所以在安装的Scrapy的同时也会一起安装相关的第三方框架。部分第三方框架可能会出现安装失败的情况,如:

pip install Twisted-17.1.0-cp35-cp35m-win_amd64.whl
pip install lxml‑3.7.3‑cp35‑cp35m‑win_amd64.whl
3.安装MongoDB

这里使用MongoDB来保存爬取到的网页上的信息,如文章的标题、类别、图片保存路径等等。
MongoDB安装相对简单。先下载安装包https://www.mongodb.com/download-center,如果安装过程中有疑问可以参考官方文档。Windows下也可以参考这篇文章MongoDB下载与安装,作者讲的很详细。
MongoDB安装完后还需要安装第三方库pymongo,我们需要pymongo在python代码中操作MongoDB。
安装命令:

pip install pymongo
4.安装Redis

Redis是一个数据结构为key-value键值对的存储系统。在爬虫中使用Redis主要是为了存取缓存,记录自动更新Http代理的时间,对已经爬取的网页URL进行过滤等等。
Redis的安装教程和下载地址在官网链接中https://redis.io/download
Redis还目前没有Windows版本,所以如果要安装Windows版本,只能使用Microsoft Open Tech group 提供的Redis版本。Github中有下载地址和安装教程https://github.com/ServiceStack/redis-windows
接着安装第三方库redis
安装命令:

pip install redis
5.安装第三方库
  1. pillow:处理对图片的裁剪、保存
pip install pillow
  1. requests:基于 urllib,采用Apache2 Licensed开源协议的HTTP库
pip install requests
  1. schedule:使用schedule进行定时任务管理
pip install schedule
6.安装IDE

推荐使用PyCharm,可以说是目前做python开发最好的IDE,PyCharm社区版提供的功能就已经足够强大了。

最后

现在我们对Scrapy已经有了基本的认识,开发环境搭建也已经完成,接下来就开始进行代码编写。Python爬虫实战-使用Scrapy框架爬取土巴兔(二)

附:

详细的项目工程在Github中,如果觉得还不错的话记得Star哦。

上一篇 下一篇

猜你喜欢

热点阅读