当前位置: 首页 > 科技观察

手把手教你写一个网络爬虫(二):迷你爬虫架构-通用网络爬虫

时间:2023-03-15 22:02:55 科技观察

介绍大家好!回顾上一期,我们在介绍完爬虫的基本概念后,利用各种工具横冲直撞完成了一个小小的爬虫。目的是猛、粗、快,让初学者上手,树立信心。有一定基础的读者请不要着急,我们以后会学习主流的开源框架,打造强大专业的爬虫系统!但在此之前,我们需要继续打好基础。本期我们将首先介绍爬虫的种类,然后选择最典型的通用网络爬虫,为它们设计一个迷你框架。对框架有了自己的思考之后,学习复杂的开源框架就有了头绪。今天我们将花更多的时间思考,而不是一门心思的编码。80%的时间用来思考,20%的时间用来敲键盘,更有利于进步。Language&EnvironmentLanguage:带足弹药,继续用Python开路!一个迷你框架下面以一个典型的通用爬虫为例,分析其工程要点,设计并实现一个迷你框架。架构图如下:代码结构:config_load.py配置文件加载crawl_thread.py爬行线程mini_spider.py主线程spider.conf配置文件url_table.pyurl队列、url表urls.txt种子url采集webpage_parse.py网页分析网页_保存。py网页存储看配置文件有什么:spider.confurl_table.py步骤3、记录下载了哪些网页的小本子——URL表。在互联网上,一个网页可能由多个网页中的超链接指向。这样,在遍历互联网的图时,这个网页可能会被访问??多次。为了防止一个网页被多次下载解析,需要一个URL表来记录哪些网页被下载过。当我们再次遇到这个页面时,我们可以跳过它。crawl_thread.pyStep5.页面分析模块从网页中解析URLs或者其他有用的数据。这是上一期的重点,大家可以参考之前的代码。步骤6、页面存储模块是用于保存页面的模块。目前,文件保存为文件。以后可以扩展各种存储方式,比如mysql、mongodb、hbase等。webpage_save.py写到这里,整个框架已经清晰的呈现在大家面前了,别小看它,不管多复杂框架就是,它是在这些基本要素的基础上进行扩展的。下一步基础知识的学习暂时告一段落,希望能帮助大家打下一定的基础。下一期将为大家介绍强大成熟的爬虫框架Scrapy,它提供了许多强大的功能,让爬虫变得更简单高效,更精彩,敬请期待!