你说的隐藏的div内容,应该是动态加载的数据吧,不在网页源码中显示,只在加载网页时才请求数据进行显示,一般情况下,这种数据都保存在一个json文件中,只要抓包分析出这个json文件的url地址,然后再根据json文件结构进行解析,很快就能获取到动态加载的div数据,下面我以爬取人人贷上面的散标数据为例,简单介绍一下python如何爬取div动态加载的数据,实验环境win10+python3.6+pycharm5.0,主要步骤如下:
1.打开散标数据,如下,爬取的信息主要包括年利率、借款标题、期限、金额和进度这5个字段信息:
右键对应元素进行检查,可以看出所有的数据嵌套在div标签中,如下:
打开网页源码,我们按Ctrl+F查找对应的数据,会发现所查找的数据都未在网页源码中,如下,即数据都是动态加载,所以直接解析原网页是找不到div嵌套的数据的:
2.我们按F12调出开发者工具,依次点击“Network”->“XHR”,F5刷新页面,就会看到动态加载的json文件,查看这个文件,内容如下,左边为json文件的url地址,右边就是我们需要爬取的div数据:
3.最后对应上面的json文件,我们就可以直接获取并解析json了,这里主要用到requests和json这2个模块,其中requests用于根据url地址获取json文件,json用于解析json文件,提取出我们所需要的信息,即div动态加载的数据,测试代码如下,非常简单:
运行程序,截图如下,已经成功爬取到div加载的数据:
至此,我们就完成了利用python爬取div动态加载的数据。整个过程非常简单,最主要的还是抓包分析,只要你有一定的爬虫基础,熟悉一下上面的代码,多调试几遍程序,很快就能掌握的,你也可以使用selenium进行爬取,直接解析就行。