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

浏览: 3364

封面.PNG


Power Query以往文章:

Power Query M函数(1)--数据类型及数据结构

PowerQuery M函数2--计算方式与运算符

Power Query M函数(3)--数据类型转换、元数据及错误处理

Power Query M函数(4)--Excel小爬虫之爬网页数据



不用编程只需简简单单写几个公式就能批量获取求职网站上的海量信息,如果有这么一种高能方法就在下边介绍的内容中,你是否会花些时间将文章读到底呢?!

 

在前边M函数第四讲中为大家介绍了用Web.Page函数获取静态网页表格数据的方法,但在很多情况下我们需要的信息是通过JS动态传递的,这种情况下就需要使用Json.Document函数来获取信息了。

 

网站请求过程:

在进入正文前,我们先来简单了解一下网站的请求过程。比如我们在搜索拉勾网中的求职信息时,其实是向对方服务器发出相应请求后,再由对方服务器动态的响应请求,再将我们所需要的信息发给浏览器,通过浏览器解析后呈现在显示器中的。

拉勾网的情况,每当对某个关键词进行搜索时,信息会由XHR动态传递,通过在谷歌浏览器中点击F12对网站进行观测后,发现以GET的方式会获得search.json,这个search.json就是我们搜索的招聘信息。

作者不是爬虫专家,对网站相关知识也就了解这么多了,能够爬取成功全凭不断尝试,踩着石头过河。如果某个任务,目标明确,那么坚持尝试后总会有一些收获的。

image.png



Json.Document函数说明:

Json.Document函数:返回JSON文档的内容

表达式:function(jsonText as any, optional encoding as nullableTextEncoding.Type) as any

注释:当付给Json.Document函数的参数是json相关信息时,Json.Document会返回JSON文档内的相关内容



爬取拉勾网求职数据步骤:

1.      先要注册网站

2.      通过浏览器中的开发者监控界面(按F12启动)找到拉勾网搜索关键词后获取的JS地址(此步骤内容省略,地址如下)

https://m.lagou.com/search.json?city=城市名&positionName=关键词&pageNo=页码&pageSize=一页中的显示条数

3.      通过对上述地址的特点进行分析后了解到,确定展示内容的变量有城市名、关键词、页码及一页中显示的条数这四个变量,一页中显示的条数固定为15,所以我们只需要自定义城市名、关键词、页码这三个变量就可以了

4.      打开一个空的Excel,在表格界面输入城市名、关键词、页码对应的相关信息,比如我想查找城市为“北京”,关键词为职位描述信息的“数据分析”的前“5”页的招聘信息时就需要输入一份如下表的数据:

image.png

5.      将上边数据加载到Power Query,将页码字段转换为文本型数据

6.      按照如下方式添加自定义列

image.png

         公式内容如下:

          =Json.Document(Web.Contents("https://m.lagou.com/search.json?city="&[城市]&"&positionName="&[职位]&"&pageNo="&[页码]&"&pageSize=15"))

 

7.      对新添加的列进行逐层展开,直到得到所需信息为止,删除不需要的列,加载完成

展开路径:数据->content->data->page->result->扩展到新行->最后选中所需列展开

最终执行结果如下:

7.PNG



报名用数据说话-Excel BI商业智能分析零基础精讲课程系统学习Excel商业智能分析相关知识

推荐 2
本文由 李奇 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册