*敏*感*词*教你写网络爬虫(2):迷你爬虫构架-通用网路爬虫

优采云 发布时间: 2020-06-20 08:00

  

  介绍

  大家好!回顾上一期,我们在介绍了爬虫的基本概念以后,就借助各类工具横冲直撞的完成了一个小爬虫,目的就是猛、糙、快,方便初学者上手,建立信心。对于有一定基础的读者,请不要着急,以后我们会学习主流的开源框架,打造出一个强悍专业的爬虫系统!不过在此之前,要继续打好基础,本期我们先介绍爬虫的种类,然后选定最典型的通用网路爬虫,为其设计一个迷你框架。有了自己对框架的思索后爬虫结构,再学习复杂的开源框架就有头绪了。

  今天我们会把更多的时间用在思索上,而不是一根筋的coding。用80%的时间思索,20%的时间敲按键,这样更有利于进步。

  

  语言&环境

  语言:带足*敏*感*词*,继续用Python开路!

  

  

  

  

  

  

  一个迷你框架

  下面以比较典型的通用爬虫为例爬虫结构,分析其工程要点,设计并实现一个迷你框架。架构图如下:

  

  代码结构:

  

  config_load.py 配置文件加载

  crawl_thread.py 爬取线程

  mini_spider.py 主线程

  spider.conf 配置文件

  url_table.py url队列、url表

  urls.txt *敏*感*词*url集合

  webpage_parse.py 网页剖析

  webpage_save.py 网页储存

  看看配置文件里有哪些内容:

  spider.conf

  

  

  

  

  

  url_table.py

  

  Step 3. 记录什么网页早已下载过的小笔记本——URL表。

  在互联网上,一个网页可能被多个网页中的超链接所指向。这样在遍历互联网这张图的时侯,这个网页可能被多次访问到。为了避免一个网页被下载和解析多次,需要一个URL表记录什么网页早已下载过。再碰到这个网页的时侯,我们就可以跳过它。

  crawl_thread.py

  

  

  

  

  Step 5. 页面剖析模块

  从网页中解析出URLs或则其他有用的数据。这个是下期重点介绍的,可以参考之前的代码。

  Step 6. 页面储存模块

  保存页面的模块,目前将文件保存为文件,以后可以扩充出多种储存方法,如mysql,mongodb,hbase等等。

  webpage_save.py

  

  写到这儿,整个框架早已清晰的呈如今大伙眼前了,千万不要小看它,不管多么复杂的框架都是在这种基本要素上扩充下来的。

  下一步

  基础知识的学习暂时告一段落,希望还能帮助你们打下一定的基础。下期开始为你们介绍强悍成熟的爬虫框架Scrapy,它提供了好多强悍的特点来促使爬取更为简单高效,更多精彩,敬请期盼!

  【编辑推荐】

  如何用Python来找你喜欢的女生?初识Python:全局、局部和非局部变量(带示例)教你用Python解决非平衡数据问题(附代码)调查显示:你是否是一个合格的Python开发者?*敏*感*词*教你写网络爬虫(1):网易云音乐歌单

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线