excel自动抓取网页数据(Excel中的“数据查询”功能,你是否有些困惑?)
优采云 发布时间: 2021-12-15 18:08excel自动抓取网页数据(Excel中的“数据查询”功能,你是否有些困惑?)
看到标题是不是有点懵?能够在 Excel 上获取数据意味着什么?打开csv格式表和Excel格式表不就行了吗?然而,这种情况并非如此。
其实标题有两层意思: 第一层是指在一些数据库管理不太严格的中小型企业,可以通过Excel中的ODBC数据接口与数据库或数据仓库建立连接,以及直接快速访问数据,提高工作效率。; 第二层意味着Excel 2016中有相当强大的数据采集工具,即使不能直接从数据库中获取,也可以从多个本地数据表中提取、组织和转换数据,并实时更新。提高工作效率。
下面简单介绍一下Excel中的“数据查询”功能。如图1所示,点击“数据”选项卡下的“新建查询”下拉菜单,可以看到Excel提供了非常丰富的数据采集工具。数据可以从其他本地工作簿、SQL Server、MySQL、Oracle等数据库中获取,也可以从Hadoop HDFS文件中查询。本节以本地文件查询和Web查询为例。
图1 数据查询功能
继续前面的例子,我们将分别为A表、B表和C表创建三个Excel文件,点击“新建查询”中的“从工作簿”后,选择我们想要的表A,就会出现一个连接的“导航器”,如图2所示。如果直接点击“加载”按钮,表A中的所有数据都会进入打开的工作表,并建立查询连接。如果我们点击“编辑”按钮,就会弹出编辑查询的设置界面。在“查询编辑”面板中,可以直观地实现SQL,如选择列、添加过滤条件、构造新字段等,如图3所示。
图2 新建数据查询
图 3 编辑数据查询
我们的目的是将Table A、Table B、Table C这三个表进行合并。 那么,最合理的做法就是以Table B为主表,合并Table A和Table C的内容。 首先,我们设置分别对三个表进行up查询,如图4所示。
图 4 新建和源数据查询
第二步,设置B表的查询,打开设置面板后,点击“组合查询”按钮,如图5所示。
图5 应用组合查询
第三步,在“组合查询”设置面板中选择两个表对应的key,即“用户ID”,然后选择“左外(第一个中的所有行,两个中的匹配行) )”,这是一个“LEFT JOIN”,如图6所示。
图6 在合并中设置匹配的列和联接类型
点击“确定”按钮后,查询设置界面出现“NewColumn”,如图7所示,点击右侧按钮,在下拉列表中选择要匹配的字段进入B表框中,然后选择“用户名”、“地区”、“性别”和“注册来源”。
图7 选择要匹配的字段
完成这一步后,其实A表和B表已经合并成功了。我们再次点击“组合查询”选项,如图8。按照刚才的操作,对表C中的“事件”字段执行“LEFT JOIN”,最后就大功告成了,如图9 .
图8 在新的合并中再次设置匹配的列和联接类型
图9 合并完成后的效果
经过上面的步骤,在对不同的表创建查询后,一旦作为数据源的表发生变化,我们只需要在查询设置页面的上方右击“刷新”按钮,数据就会更新。无需重复复制粘贴,无需手动编写函数转换,大大提高了工作效率。
对这个内容做一点扩展。作品中,作者会根据分析需要,使用查询工具,将各种来源的表连接成一个主表;然后主表将制作数据透视表和数据透视图。数据透视表的数据源是指整个表对象,而不是一个区域。这样可以实现*敏*感*词*的数据上报。只要更新数据源,然后打开制作报表的Excel工作簿,更新查询链接,再更新数据透视表,新报表就完成了。有了这个方法,原来半天的工作量可以压缩到30分钟,效率提升非常可观。
除了在本地文件之间建立查询之外,我将简要介绍如何从网页中抓取数据。我们从NBA统计数据网站中提取了上赛季某个页面呈现的东西方球队战绩,如图10所示。
图 10 NBA 统计数据网站
这个过程实际上非常简单。首先,从 Web 创建一个数据查询。单击图 11 所示的“来自 Web”选项后,在弹出窗口中输入 URL,然后单击“确定”按钮。然后Excel会自动访问这个网页,抓取网页中标签中存储的数据内容。然后,熟悉的页面出现了。如图 12 所示,在“导航器”中,我们看到了网页中呈现的数据。直接点击“加载”按钮,数据就会出现在我们的Excel工作表中。
图11 从Web建立数据查询
图 12 从 Web 上爬取 NBA 记录数据
在Excel中,获取数据的功能其实很强大,笔者只用了“冰山一角”。希望大家在日常工作中多多学习使用,分享宝贵经验。
*免责声明:本文整理于网络,版权归原作者所有。若来源信息有误或侵权,请联系我们进行删除或授权。