学习Python的人绝大部分都是在用Python做爬虫,毕竟对于爬虫而言Python是不二选。
但是一般简单的静态页面网站还是很好爬取的,对于很多动态加载的网站就不知道怎么办了,今天小编就给大家介绍两种爬取js加载的动态数据,希望对爬虫方面有所帮助!
今天咱们就以高考查询网站为例!
如何知道这个网站是动态加载的数据?
用浏览器,这里小编建议使用火狐或者谷歌这个想必大家都知道的
打开你网页,右键查看页面源代码,ctrl +F 查询输入293,源代码里面并没有这个值,说明是动态加载数据。
它的网址是: 数字代表的第几页。它一共是165页
所以想要获取全部的url地址就非常简单了
对于动态加载数据,我们常用的两个方法:
使用selenium
分析网页元素,找出该数据的原始网页,提交表单,获取不同的数据,用来达到爬取的目的。
方法一selenium:
为什么要这么写,代码里面表明了注释!
小结:
通过对数据的分析,写出上面的查找方法,即可获取所有数据。
通过这种方法获取数据,简单,也比较直观,缺点是太慢了。
方法二分析网页元素,找出该数据的原始网页,提交表单,获取不同的数据,用来达到爬取的目的。:
既然要分析网页元素,首先我们肯定是要用到了开发者工具,按F12就可以打开浏览器自带的开发者工具。如下图
分析得知类型为json的那一栏即是我们需要的数据
查看消息头里面的请求网站:
https://data-gkcx.eol.cn/soudaxue/queryProvince.html?messtype=jsonp&callback=jQuery183005011523805365803_1512185796058&luqutype3=&province3=&year3=&luqupici3=&page=2&size=10&_=1512185798203
真正的请求网站:
https://data-gkcx.eol.cn/soudaxue/queryProvince.html
参数 :
messtype=jsonp&callback=jQuery183005011523805365803_1512185796058&luqutype3=&province3=&year3=&luqupici3=&page=2&size=10&_=1512185798203
也可以点击右侧的参数栏参看参数
详情代码
方法很简单,主要还是自己动手去实践,实践才能出真知,在岸上学游泳是永远也学不会的。就这么简单的两种方法就可以爬取JS加载的动态数据了,方法都挺简单的,你学会了么?赶紧去试试吧!
领取专属 10元无门槛券
私享最新 技术干货