系列文章目录
前言
经过第一章和第二章的学习,对爬虫有了基本认识,这一篇总结了第一个爬虫demo的详细编写过程,重点还是通过代码理解爬虫运行原理。
一、爬虫项目创建
第一篇已经介绍过如何创建爬虫项目了,这里直接给出命令:
创建爬虫项目
scrapy startproject scrapy_demo
生成一个爬虫
scrapy genspider spider1 https://www.xxx.com
爬虫目录结构
二、编写爬虫代码
经过学习,主要就是搞清楚爬虫是怎么通过items.py, spider1.py, pipelines.py, middlewares.py, settings.py这几个文件配合运行起来的。直接给出一个demo样例图,然后详细说明每一步的作用。
结合上图说明如下:
0、写一个爬虫之前,我们需要搞清楚,我们要爬取网站的哪些数据?这是很重要的一步,这一步是在items.py中进行字段定义的。看图即可。
1、然后指明我们要爬取的链接,这就是在spider1.py中定义的,引擎会将链接请求经过调度器做做去重工作,然后将请求发送给下载中间件,中间件里会对请求做一些特定操作。
2、中间件处理完请求之后,把响应返回给爬虫的parse()函数,parse()函数里就可以解析响应了,把我们想要的数据解析出来,无论是用xpath还是bs4,这儿是我们的一个主战场。数据解析出来后封装成item,记得要返回。注意上图中用到了yield返回,yield会一个一个item返回给pipeline文件,而不是收集所有的item,然后一股脑传递给pipeline,节省了很大的内存空间。
3、第2点中yield会把获取的一个一个item实例返回给pipelines.py管道文件,管道文件的作用是用来保存数据的呀~,除了图中的写入文件,还能写入到数据库中。
4、这一步不能少,需要在settings.py中把用到的中间件、pipeline配置生效,这个爬虫才能正常运行起来。
5、运行爬虫scrapy crawl spider1
,保存数据
也可以通过Python脚本运行爬虫,不用在cmd命令窗口执行命令。
代码参考:爬虫demo
总结
从代码角度熟悉了爬虫的运行原理,还需要多加练习。