Power Query 网络抓取POST案例:历年各省分数线抓取

#学浪2020#

高考倒计时4天,首先预祝考生们不紧张,考出理想成绩,等到考完试分数出来时大家就要关心高考志愿填报的问题了,记得去年有一个网站抓取过分数线的数据,我找出来再试试,结果不好用了。去年抓取的时候直接找到真实的网址,就可以直接定义函数抓取,很方便。

不过网络抓取就是这样,网站服务器端稍作改动,之前的方法就有可能失效,要重新来分析网站,找到新的方法。

网站分析

记得去年抓取时也是这样的地址,也是POST,不过不需要定义复杂的函数,直接url就可以抓。

Power Query 网络抓取POST案例:历年各省分数线抓取

今年的查询下面多了一个request payload:

Power Query 网络抓取POST案例:历年各省分数线抓取

实际上虽然有access_token但是是个空值,并不起作用,所以我们可以尝试用POST的方式抓取数据。

定义函数

我们需要用三个参数来控制抓取:

Power Query 网络抓取POST案例:历年各省分数线抓取

这里要注意的就是这一句:因为是POST查询要有#"Content-Type"

headers=[#"Content-Type"="application/json;charset=UTF-8",Cookie=""],

还有就是查询条件的写法:

query=[access_token="",page=Text.From(p),province_id=Text.From(pid),size="20",uri="apidata/api/gk/score/proprovince",year=Text.From(y)],

加Text.From函数就是为了方便,不然要做类型转换。

说一下pid的获取,总不能一个省份一个省份的点击页面来查看吧,看这个JSON:

Power Query 网络抓取POST案例:历年各省分数线抓取

直接拷贝过来就可以用了,顺便把年份也取过来了。

试抓

直接出结果,这个是二进制文件,用JSON解析一下就可以了

Power Query 网络抓取POST案例:历年各省分数线抓取

展开之后是这样的:

Power Query 网络抓取POST案例:历年各省分数线抓取

抓取

不建议大家直接全部省份,全部年份的去抓,会被服务器屏蔽,只抓取你感兴趣的就可以了:

Power Query 网络抓取POST案例:历年各省分数线抓取

我是只抓取了辽宁省的数据,就是5个表,展开:

Power Query 网络抓取POST案例:历年各省分数线抓取

用这个数据做两个图:分文理科


Power Query 网络抓取POST案例:历年各省分数线抓取


Power Query 网络抓取POST案例:历年各省分数线抓取

有了这个方法,我们就可以用来抓取院校、专业的分数线,大家可以自己尝试一下。

展开阅读全文

页面更新:2024-03-08

标签:分数线   辽宁省   被服   分文   行政区划   写法   页码   历年   年份   函数   省份   定义   去年   案例   方法   数据   科技   网站   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top