Python|初识scrapy爬虫

本文来自微信公众号:JAVAandPython君

1.写在前面的话

JAP君在前面也是写过一些小爬虫的,其实那些都是爬虫文件。在学习scrapy之前我们得弄清楚爬虫文件和爬虫项目的区别,其实也非常容易理解,爬虫文件顾名思义就是单个的文件来写的爬虫,爬虫项目顾名思义就是一个大型的爬虫毕竟都称之为项目了,我们大家都知道项目是不可能只有单个文件的,它是由许多的文件组成并且每个文件之间有着很大的关联。scrapy就是这么一个写爬虫项目的框架,怎么去玩它呢?今天JAP君带着大家一步一步来。

2.打仗首先得要有武器—scrapy框架的安装

其实安装scrapy特别的简单,就一句话的事。首先同时按windows键+R,然后输入cmd,最后在cmd中输入pip install scrapy .
由于JAP君用的是windows10开发只要这么简单几步就行了,但是JAP君从网络上也了解到其他的系统安装也有许多坑,但是win10安装也可能有坑,当然有坑的话可以加我们讨论群进行解决。
可是很多朋友还是不知道到底有没有安装成功,这时你仍然在cmd窗口输入scrapy命令,若有如下图的反应,那么恭喜你安装成功,可以好好玩耍了

Python|初识scrapy爬虫

3.有了武器要知道怎么用它—scrapy的常用指令

我们把scrapy安装成功后,该怎么去用了?没啥感觉啊!接下来我们就正式开始接触scrapy了!

其实我们的scrapy的操作都是通过命令行来进行的,有些什么命令呢?

1.scrapy -h (查看所有命令)
Python|初识scrapy爬虫
从这里我们可以看到scrapy的大部分命令,例如上面的version,我们就可以如下图输入:
Python|初识scrapy爬虫
2.scrapy startproject spider_name (创建一个项目工程)

这里我要说明一下,我们使用这个命令之前需要切换到我们自己建的一个文件夹里,然后再输入这串命令,就会在相应的文件夹中创建这个工程。
Python|初识scrapy爬虫
大家可以看我的命令输入,我首先是切换到我自己创建的scrapydemo的文件夹中,然后输入 scrapy startproject ceshi1 ,这个ceshi1是大家自己定义的。

3.scrapy genspider name domain (构建爬虫)
估计大家对domain有点懵逼,domain就是你想要爬取的域名,先来看一下一个例子吧。
Python|初识scrapy爬虫
大家会注意到,我使用这个命令是在我们的项目目录里面,因为我们是要在这个项目里面去构建这个爬虫,首先ceshi是我们自己定义的名字,baidu.com是我们要爬取的域名,大家这里估计又会疑惑为啥不是http://www.baidu.com?其实http这个东西是协议,而www是属于万维网也不是域名的一部分,所以这里我们直接输入baidu.com即可。
至于这串代码的具体体现,下面我会说的。

4.scrapy crawl name (运行爬虫,带log日志)和scrapy crawl name --nolog (运行爬虫,不带log日志)

这个命令咱们到后面来解释,因为这个需要我们去写一个简单的爬虫,大家只要记住运行爬虫就用它两。

4.创建项目之后是个啥样呢?

通过上面的命令scrapy startproject ceshi1 我们成功的建立了第一个scrapy爬虫项目,我们来看看到底有些啥?
Python|初识scrapy爬虫
ceshi1文件夹就是和我们创建是输入的名字是相同的

scrapy.cfg:爬虫项目的配置文件

我们在深入一下ceshi1文件夹
Python|初识scrapy爬虫
第一个文件夹:不必多说,一个缓存文件夹

第二个文件夹:就是我们爬虫的代码所在地

init.py:爬虫项目的初始化文件,用来对项目做初始化工作。
items.py:爬虫项目的数据容器文件,用来定义要获取的数据。

pipelines.py:爬虫项目的管道文件,用来对items中的数据进行进一步的加工处理。

settings.py:爬虫项目的设置文件,包含了爬虫项目的设置信息。

middlewares.py:爬虫项目的中间件文件
然后我们再次深入spiders文件夹
Python|初识scrapy爬虫
在这里我们发现了我们之前通过scrapy genspider ceshi baidu.com所生成的ceshi.py的文件。
其实这个项目我们可以用pycharm进行打开并且可以用pycharm进行编写项目,下次带大家实战一个项目的时候会看到的。

5.结尾

我们刚刚初识了一下scrapy框架的一些指令和文件夹,相信大家还是有一点点感觉了,下一篇我会带着大家利用scrapy框架去实战一个爬虫项目,请记得持续关注我啦!如果这篇文章有用可以点个好看或者给JAP君加个小鸡腿,坚持原创的JAVAandPython君

欢迎大家关注我的微信公众号:JAVAandPython君

坚持原创技术内容!

关注后发送“领取资料”即可领取5T技术资源

Python|初识scrapy爬虫