作者 |梁睿坤
来源 |慕课专栏《从 0 开始学爬虫》
由实践入手通过代码说话,学习如何由一个想法开始对爬虫进行“简单设计”以及开发网络爬虫要分为多少个基本的实施步骤。
设计思路
开始设计数据结构
“种子”的分析,生成爬虫的入口
开始编码
小结:爬虫的基本开发思路
设计思路
如果你已认真阅读前面两个小节的内容,那么恭喜你!你已经具备动手编写网络爬虫的基础知识了。接下来的这一个小节,就是将我们前面所打下的基础,通过一个具体的动手实践将其融汇贯通形成一个真正的网络爬虫。
开始之前我们需要确定一个爬取的目标,为了能保证这个例子能持久地运行我特意采用我的博客作为本例的爬取标的。目标: 在这个示例里面我们要写一个爬虫将我的博客中的文章列表拉出下来,保存到一个 JSON文件里面。
注: 网络爬虫项目的关键在于从一开始就要清楚地建立一个明确的爬取方向与目的。
开始设计数据结构
建立具体的爬取标的之后并不是急于动手去编码,而是应该弄清楚要从网页中取些什么,然后存什么,换句话说就是要设计爬取后的数据的存储结构。
如上图所示,每个文章都是以相同的模式进行显示的,这就很容易得到这么一个简单的结构:
名称 | 字段 |
---|---|
标题 | title |
摘要 | summary |
发表日期 | pub_date |
原文链接 | parmerlink |
“种子”的分析,生成爬虫入口
网络爬虫中爬取的第一个页面称之为“种子”页(seed),又叫爬虫入口。在本例中目标数据就在当前打开的页面https://www.cnblogs.com/Ray-liang/
内,而对于一些项目来说可能数据是存在于其它不知道具体地址的页面内,而要得到这些具体的URL则需要先爬取“种子”页后方能获取,这就是“种子”来由。
现在我们需要将上面设计的数据结构与网页中的元素对应起来,打开浏览器的开发者工具来分析一下网页的内容: