但解析失踪为空?
数据应该是动态加载的,放在一个json里面,需要抓包分析,BS4和xpath直接获取的是网页源码,解析不到数据,所以直接返回的是空值,下面我简单介绍一下如何获取动态网页的数据,感兴趣的朋友可以尝试一下,以人人贷上的数据为例:
首先,分析数据打开我们需要爬取的网页,这里假设我们要爬取的数据如下,涉及5个字段,都是一些比较规范的列表,提取起来也比较容易:
打开网页源码(不要右键检查),按住ctrl+F键任意搜索一个数据,可以看得出来,任何数据都查找不到,这时数据就很有可能是动态加载的,放在一个json里面,需要抓包分析进行确定:
接着,抓包分析还是刚才的网页,按F12调出开发者工具,依次点击“Network”->“XHR”,F5刷新页面,仔细观察抓取到的文件,一个一个比照需要爬取的数据进行分析,最后可以看到加载的json如下,也就是我们需要获取的数据,这里一般都是按照一定规律进行循环,一页一页往下加载,格式是json的,主要是为了方便解析和提取,记着这里的url,后面直接用requests请求即可:
最后,编写程序前面的json url已经确定,这里直接请求、解析数据即可,如下,代码非常简单,基本思想先requests获取数据,然后再json解析,一个一个字段的提取出来:
程序运行截图如下,已经成功获取到我们需要的数据:
至此,我们就完成了获取动态网页数据,最重要的还是进行抓包分析,静态网页数据一般都是固定不变的,直接在网页源码中可以看到,但是动态网页就不行了,只有在请求页面的时候才进行加载,而且它是实时更新和变化的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有