加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2017-05-27 21:33:42)
标签:

教育

it

分类: PowerQuery
https://ask.hellobi.com/uploads/article/20170524/d40f2c300c07bc5f18fb2ad5e4cf4df0.PNGQuery M函数(5)--Excel小爬虫之爬取求职网站动态信息" />
http://s16/mw690/005uckTVzy7bnIBFXMr6f&690Query M函数(5)--Excel小爬虫之爬取求职网站动态信息" TITLE="Power Query M函数(5)--Excel小爬虫之爬取求职网站动态信息" />

Power Query以往文章:

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

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


网站请求过程:

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

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

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

http://s5/mw690/005uckTVzy7bpjHacC024&690Query M函数(5)--Excel小爬虫之爬取求职网站动态信息" TITLE="Power Query M函数(5)--Excel小爬虫之爬取求职网站动态信息" />


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

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

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

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

http://s15/mw690/005uckTVzy7bpjTRgzsfe&690Query M函数(5)--Excel小爬虫之爬取求职网站动态信息" TITLE="Power Query M函数(5)--Excel小爬虫之爬取求职网站动态信息" />

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

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

http://s13/mw690/005uckTVzy7bpjVxw1Ccc&690Query M函数(5)--Excel小爬虫之爬取求职网站动态信息" TITLE="Power Query M函数(5)--Excel小爬虫之爬取求职网站动态信息" />

公式内容如下:

=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 M函数(5)--Excel小爬虫之爬取求职网站动态信息" TITLE="Power Query M函数(5)--Excel小爬虫之爬取求职网站动态信息" />

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有