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

学习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加载的动态数据了,方法都挺简单的,你学会了么?赶紧去试试吧!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180906A1XXM400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券