当自己需要数据的时候,能够分分钟就能获得,是不是一件很爽的事情。为了获得自己想要的数据,我们有必要弄懂爬虫原理。经常用百度搜索的筒子们,有没有想过当你输入百度地址时候,网络那边都发生了什么,本章讲一下网络连接原理和爬虫原理。
网络连接原理如下图:

打个比方:网络连接像是在自助饮料售货机上购买饮料一样:购买者只需选择所需饮料,投入刷二维码,自助饮料机就会弹出相应的商品。如上图,计算机(购买者)带着请求头和消息体(钱和所需饮料)向服务器(自助饮料售货机)发起一次request请求(购买),相应的服务器(自助售货机)会返回计算机相应的HTML文件作为Response(相应的商品)。
爬虫原理
爬虫其实就是模仿计算机:
1、模拟计算机对服务器发起Request请求
2、接受服务器端的Response内容并解析、提取所需的信息
我们经常遇到网页请求主要分为两种:多页面和跨页面。相应的爬虫流程也是这两种。
1.多页面爬虫流程
示例图:

QQ空间说说,58赶集等信息网站很多都是这个结构,每页结构都差不多。这种类型的网页爬虫流程为:
1、手动翻页查看一下各网页的URL构成的特点,构造出所有页面的URL存入列表中。
2、根据URL列表一次循环出URL
3、定义爬虫函数(这个是重点,也是难点)
4、循环调用爬虫函数,存储数据(根据数据形式,选择不同数据库)
5、循环完毕,结束爬虫程序

跨页面爬虫流程
以简书为例:列表页和详细页分别如下图


爬虫流程如下:
1、定义爬取函数爬取列表页的所有专题URL
2、将专题URL存入列表中(种子URL)
3、定义爬取详细页的数据函数
4、进入专题详细页爬取详细页数据
5、存储数据、循环完毕,结束爬虫程序。如下图

网友评论