过年回家没带电脑,刚看到。以下是完整步骤。
前边步骤比较简单,逐步操作就行,不再赘述: 获取数据——web——粘贴网址(选“基本”即可)——导航器——选择所需内容——转换数据——进入power query编辑器 重点是以下步骤: 1)点击“高级编辑器”,弹出窗口,可以看到软件自动生成的代码,这里只需要修改两处地方:一是在let前边另起一行,输入“(page as number)as table=>”,结尾是一个等号(“=”)和大于号(“>”)。二是重新构造网址,实际上是用Number.ToText(page)代替原有的数字,再用&拼接(如图一),注意用成对的引号包含字符串,公式不用。 简单解释下,page可以看作一个变量(也可以换其他喜欢的名字),类似解方程中未知数,用它代替网址中代表页数的数字,我们只需要把它替换成其他数字就可以得到其他的网页,接下来会演示。Number.ToText(page)这个公式顾名思义,就是把数字转换为文本格式。 对于有许多分页的网页,重点是找到网址的规律,以数学一年级为例, 第四页https://www.shijuan1.com/a/sjsx1/list_112_4.html 对比可以发现只有一个数字不同,它正好对应页数,尝试把第一页网址改为https://www.shijuan1.com/a/sjsx1/list_112_1.html也能打开,印证猜想,于是采用如上思路构造网址。 这一步完成后会看到图二界面,其实这里已经完成了一个自定义函数,输入数字点击就可以使用。为了使用方便,修改其名称为“分页提取内容”。 2)依次点击:主页——新建源——空查询——在公式框输入“={1..10}”,enter(如图三)——点击“到表”,弹出对话框,直接确定——鼠标移到列的左上角,如图四所示,点击选择“整数”。 简单说明,这里其实是构造了一列数字,用它来代替页数。={1..10}是固定语法,1是数列起点,10是终点,中间是两个英文句号,外边是一对大括号。为了节省时间这里只写了10页,实际可根据需要修改大小。也可以使用公式= List.Numbers(起点,数字个数,间隔),如= List.Numbers(1,5,2)会生成“1,3,5,7,9”。注意一定要在英文格式下输入。 3)添加列——调用自定义函数——在新对话框中选择(如图五,前边步骤都做对的话,这里只有一个选项)——同意隐私数据要求(如图六,图七)——保存后软件开始提取数据,如果页数较多,这里需要多等一会。 4)出现如图八所示的界面表示提取数据成功,点击如图八所示右上角的图标,把数据展开到每一列,可以选择保留或删除的部分,之后点击“关闭并应用”(如图九),这里也会多等一会。 5)在主界面做一个表,可以行排序,列排序等等,点击三个点“...”,选择导出数据即可(如图十)。也可以做几个图表,如图条形图展示了每一个网页上提取了多少条内容,容易发现是否有遗漏(原网页每页有25条)。 更有用的是完成以后每次使用不需要重复以上步骤,只要点击“刷新”,就可以自动获得数据,非常方便。 其他注意点:PQ的公式等对大小写和文本格式非常敏感,一定要在英文格式输入,稍不注意就容易报错。 不建议一次性抓取太多页,够用就行,毕竟Excel和power BI专业不是干这个的,我提取30页就花了近30分钟。
以上步骤只有三处涉及输入公式,其他步骤都是鼠标点点,泛用性比较好,修改起来也比较方便。 操作失误上传不了附件了,截图贴在word上传网盘了。
|