Power Query M函数(5)--Excel小爬虫之爬取求职网站动态信息

标签:
教育it |
分类: PowerQuery |
不用编程只需简简单单写几个公式就能批量获取求职网站上的海量信息,如果有这么一种高能方法就在下边介绍的内容中,你是否会花些时间将文章读到底呢?!
在前边M函数第四讲中为大家介绍了用Web.Page函数获取静态网页表格数据的方法,但在很多情况下我们需要的信息是通过JS动态传递的,这种情况下就需要使用Json.Document函数来获取信息了。
网站请求过程:
在进入正文前,我们先来简单了解一下网站的请求过程。比如我们在搜索拉勾网中的求职信息时,其实是向对方服务器发出相应请求后,再由对方服务器动态的响应请求,再将我们所需要的信息发给浏览器,通过浏览器解析后呈现在显示器中的。
拉勾网的情况,每当对某个关键词进行搜索时,信息会由XHR动态传递,通过在谷歌浏览器中点击F12对网站进行观测后,发现以GET的方式会获得search.json,这个search.json就是我们搜索的招聘信息。
作者不是爬虫专家,对网站相关知识也就了解这么多了,能够爬取成功全凭不断尝试,踩着石头过河。如果某个任务,目标明确,那么坚持尝试后总会有一些收获的。
http://s5/mw690/005uckTVzy7bpjHacC024&690Query
Json.Document函数说明:
Json.Document函数:返回JSON文档的内容
表达式:function(jsonText as any, optional encoding as nullable TextEncoding.Type) as any
注释:当付给Json.Document函数的参数是json相关信息时,Json.Document会返回JSON文档内的相关内容
爬取拉勾网求职数据步骤:
1.
2.
https://m.lagou.com/search.json?city=城市名&positionName=关键词&pageNo=页码&pageSize=一页中的显示条数
3.
4.
http://s15/mw690/005uckTVzy7bpjTRgzsfe&690Query
5.
6.
http://s13/mw690/005uckTVzy7bpjVxw1Ccc&690Query
公式内容如下:
=Json.Document(Web.Contents("https://m.lagou.com/search.json?city="&[城市]&"&positionName="&[职位]&"&pageNo="&[页码]&"&pageSize=15"))
7.
展开路径:数据->content->data->page->result->扩展到新行->最后选中所需列展开
最终执行结果如下:
http://s12/mw690/005uckTVzy7bpjYJCor3b&690Query