快捷搜索:  汽车  科技

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取四个基本参数:既然确定是POST方式,那么我们就要做些准备工作:我们找到这个预览,看看查询方法:同样的,我们看看点击本科专科:连本科专科各专业的查询也是POST,相比GET方式,POST方式更稳定,只是获取数据的方法要稍微复杂一些。

2011年本科各专业就业率情况的数据获取

网友提问怎么获取这个数据:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(1)

需要点击每个专业才能弹出一个对话窗口:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(2)

其实一点也不复杂,我们来看这个网站的数据传递方式:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(3)

我们找到这个预览,看看查询方法:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(4)

同样的,我们看看点击本科专科:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(5)

连本科专科各专业的查询也是POST,相比GET方式,POST方式更稳定,只是获取数据的方法要稍微复杂一些。

既然确定是POST方式,那么我们就要做些准备工作:

四个基本参数:

URL:Request URL后面全部的内容

Content-Type:在Request Headers中找

Cookies:在Request Headers中找

User-Agent: 在Request Headers中找

上面四个基本参数是可以直接从上面的页面来复制的,其中URL是需要两份:一份是获取专业代码的URL,一份是获取具体就业率数据的数据.

method=showJyxxByCc

method=showJyxxById

接下来还需要一个Content数据,这个数据也是两份:第一份比较简单:

cc=本科或专科

都二份比较复杂,是每个专业对应的一串数字,这个需要我们使用第一份数据使用POST方式获取的。

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(6)

上面两个参数是URL,下面三个是后面三个参数,然后我们要做一个头文件,新建空查询:

h= = [#"Content-Type"=ct #"User-Agent"=ua Cookies=ck]

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(7)

这里要注意的是#的用法,因为名称中含有特殊字符,所以要使用#

Power BI Desktop 中的Power Query有些过于自作主张了,总是自动htmltable的表格分析,所以我们在写POST查询时要手动编写,根据需要采用JSON CSV TXT等不同格式:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(8)

本文中数据是html代码段,所以我们要分成一行行的代码,然后进行数据清洗,整理成我们需要的数据表格,其实也简单,就是筛选出包含onclick行,然后提取,然后拆分列:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(9)

这是我们需要的结果。

好了,到这里专业的id获取就完成了,你会说不是吧,怎么完成的?

关键的步骤在这里:

Web.Contents(uri [Headers=h Content=Text.ToBinary("cc=本科")])

如果你要获取专科的专业id,就把上面一行中的本科修改为专科就可以了。

接下来的步骤有点复杂,我们要先做一个测试,通过单个专业id获取这个专业的就业率数据,然后通过这个测试性质的查询创建一个函数,到上面的表格中引用id列查询出所有专业的就业率数据。

其实有了上面一步的查询,我们稍作修改就可以完成测试查询,随便找一个专业id:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(10)

其实修改的地方不多:

Table.FromColumns({Lines.FromBinary(Web.Contents(Uid [Headers=h Content=Text.ToBinary("id=375127027")]))})

Uri变成Uid

cc=本科变成id= 375127027

当然这个样子的数据是不能用的,还需要整理一下,这个整理过程的方法就有很多了,我简单弄一下:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(11)

这一步有点复杂,文字描述,通过筛选找出包含td的行,一共是8行,然后把8行拆分成4个表格,然后每个表格加个索引列根据索引列合并表格。大概是这么个意思。

然后我们根据这个查询创建一个函数,参数是pid就是专业id:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(12)

接下来就简单了,回到最初的那个查询,添加列,调用这个函数,参数是id列:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(13)

展开表格中的列:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(14)

至此,数据就获取完成了。

最后,我们把数据加载到Power BI Desktop做个图:

2011年到2013年大学本科热门专业:2011年本科各专业就业率情况的数据获取(15)

2011年数据显示就业率95%以上的有这么几个专业。

猜您喜欢: