Q4:Python爬取的网页代码会有缺失的现象吗?

这个要看网页的数据是不是异步加载的,如果是异步加载的,就会有缺失现象,如果不是的话,就不会有缺失现象,下面我简单介绍一下非异步加载的数据和异步加载的数据这两种情况,实验环境win7+python3.6+pycharm5.0,主要介绍如下:

非异步加载的数据:这里的数据一般都是直接嵌套在网页源码中的,和HTML源码一起返回给浏览器,可以直接在网页源码中找到数据,不会存在缺失现象,大部分网页都是这样加载数据,下面以糗百为例,简单介绍一下:

1.这里我们假设要爬取作者的姓名、性别、内容、好笑数和评论数,内容如下:

2.对应到网页源码中,我们也可以找到对应的内容,如下,说明这些数据是非异步加载的,可以直接请求页面,进行爬取:

3.对应的代码如下,我们可以直接请求页面,解析数据,很简单:

程序运行截图如下,已经成功爬取到数据(由于时间原因,爬取数据和前面演示数据不一致,但本质一样):

异步加载数据:这里的数据只在加载页面时,才请求数据,网页源码中不会存在我们要爬取的数据,会存在缺失现象,需要进行抓包分析,才能找到真正的数据页面,解析出数据,这里以人人贷的数据为例,简单介绍一下:

1.假设我们要爬取年利率、借款标题、期限、金额等数据,内容截图如下:

2.在网页源码中,我们查找对应数据,会发现,根本不存在,如下:

这时,数据就是异步加载的,需要进行抓包分析,找到真正的数据文件的url地址,才能请求解析数据(一般是一个json文件,很容易解析),如下:

3.对应的代码如下,这里请求的地址是json文件的url地址,不是网页的url地址,不然请求不到数据,如下:

程序运行截图,已经成功打印出要爬取的数据:

至此,两种加载数据的方式都介绍完毕。总的来说,只要你注意注意,对应一下网页源码,很快就能发现数据是不是异步加载的,对应抓包分析一下,很快就能解析出数据,希望以上分享的内容能对你有所帮助吧。