JS动态加载数据不会怎么爬取?老司机教你两个方法爬取想要的数据

RainmtTank 2018-09-06

学习Python的人绝大部分都是在用Python做爬虫,毕竟对于爬虫而言Python是不二选。

但是一般简单的静态页面网站还是很好爬取的,对于很多动态加载的网站就不知道怎么办了,今天小编就给大家介绍两种爬取js加载的动态数据,希望对爬虫方面有所帮助!

JS动态加载数据不会怎么爬取?老司机教你两个方法爬取想要的数据

今天咱们就以高考查询网站为例!

如何知道这个网站是动态加载的数据?

用浏览器,这里小编建议使用火狐或者谷歌这个想必大家都知道的

打开你网页,右键查看页面源代码,ctrl +F 查询输入293,源代码里面并没有这个值,说明是动态加载数据。

JS动态加载数据不会怎么爬取?老司机教你两个方法爬取想要的数据

它的网址是: 数字代表的第几页。它一共是165页

所以想要获取全部的url地址就非常简单了

JS动态加载数据不会怎么爬取?老司机教你两个方法爬取想要的数据

对于动态加载数据,我们常用的两个方法:

  1. 使用selenium
  2. 分析网页元素,找出该数据的原始网页,提交表单,获取不同的数据,用来达到爬取的目的。

JS动态加载数据不会怎么爬取?老司机教你两个方法爬取想要的数据

方法一selenium:

JS动态加载数据不会怎么爬取?老司机教你两个方法爬取想要的数据

为什么要这么写,代码里面表明了注释!

小结:

  1. 通过对数据的分析,写出上面的查找方法,即可获取所有数据。
  2. 通过这种方法获取数据,简单,也比较直观,缺点是太慢了。

方法二分析网页元素,找出该数据的原始网页,提交表单,获取不同的数据,用来达到爬取的目的。:

既然要分析网页元素,首先我们肯定是要用到了开发者工具,按F12就可以打开浏览器自带的开发者工具。如下图

JS动态加载数据不会怎么爬取?老司机教你两个方法爬取想要的数据

分析得知类型为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动态加载数据不会怎么爬取?老司机教你两个方法爬取想要的数据

详情代码

JS动态加载数据不会怎么爬取?老司机教你两个方法爬取想要的数据

方法很简单,主要还是自己动手去实践,实践才能出真知,在岸上学游泳是永远也学不会的。就这么简单的两种方法就可以爬取JS加载的动态数据了,方法都挺简单的,你学会了么?赶紧去试试吧!

相关推荐