分类
BI/PBI/PY学习交流 excel知识日志 Office应用日志

Excel应用——使用Excel的PowerQuery获取党史题库

建党100周年,举办一个党史有关的答题活动,让广大党员参与进来,既回顾了党史,又提高了认识。这是很合请很合理也很合逻辑的。

既然是学习和答题,那么划定一个出题范围,乃至给出一个题库来,当然也是皆大欢喜的。

那么,如何把题库下载下来,放到excel中,方便自己练习和学习呢?

为了解决这个问题,今天,阁主就带你使用Excel自带的PowerQuery,体验一把网络数据抓取功能。

首先,我们要获得数据的来源网址:
使用微信电脑版,从相关活动二维码打开的内置浏览器窗口上方,点击复制链接按钮,复制链接并粘贴到浏览器中打开。

等待浏览器加载完毕,可以看到题库被分割成了40页,记住40这个数字,后面用到。点击F12打开浏览器开发者工具。在浏览器开发者工具中,选择“网络”选项卡。然后点击网页下方的2,进行切换页操作。

我们点击“2”以后,“网络”选项卡下面会多出来一行记录,这时候,点击这条记录的名称列文本。

这时候,会在右侧出现一个新的视图栏,选择里面的“标头”选项卡,复制“请求URL”。这里是“https://hezuo.btime.com/question/getquestion?page=2”

打开Excel,新建空白工作簿。依次选择【数据】选项卡,【获取数据】组,【获取数据】按钮下拉选择【自其他源】里面的【自网站】按钮(也可以使用【获取数据】中的【自网站】按钮,效果是一样的)

在新弹出的对话框里面粘贴网址并【确定】

这时候,Excel会自动打开PowerQuery编辑器,下一步就在PowerQuery编辑器中操作了。在Powerquery中依次点击Record、List和选项卡中的“到表”按钮。

使用数据预览窗口中列标题中的“扩展”按钮,将Record扩展为表格

在Answer列上点击“扩展”按钮,将候选项扩展为多行文本。这里分隔符选择自定义,勾选使用特殊字符连接,然后选择“换行和回车符”。

选择Column1.Type列,使用替换值功能,将1替换为单选,2替换为多选

到了这一步,我们已经完整的实现了从网页获取单个页面数据并转换为需要的形式的功能。下一步,我们使用“创建函数”功能,进行多个页面数据的获取。

创建函数对话框中输入函数名称,这里取的名字叫“获取数据”。

右键点击“获取数据”,选择“高级编辑器”,打开高级编辑器。

在高级编辑器中,可以看到有一个括号,里面为空。这就是PowerQuery公式中,放函数参数的地方。

在括号中填入x,然后把”page=2″中的”2″删掉,后面加上”&Number.ToText(x)”,确定。

,这表示定义了一个函数参数x,根据x值动态生成网址进行数据获取。

在选项卡中,选择【新建源】→【空查询】

在公式编辑栏输入“={1..40}”,代表是一个从1到40的列表

点击选项卡中【到表】按钮,将列表转为表

切换到“添加列”选项卡,点击“调用自定义函数”按钮,添加一个基于自定义函数的列

在新添加的列标题栏,点击扩展按钮

点击【关闭并上载至…】按钮,将数据返回到Excel中。

大功告成。

总结:在这个实例中,我们通过对浏览器开发者工具,Excel的Powerquery的综合运用,将一个40页的题库,快速进行全文获取,并在Excel中进行呈现,方便下一步的学习与练习工作。如果掌握了这套方法的思路,以后可以快速从网络上获取我们需要的宝贵数据,方便工作使用。