Excel VBA实例(36) - 一键提取网页中的表格数据
优采云 发布时间: 2022-05-04 03:34Excel VBA实例(36) - 一键提取网页中的表格数据
将永恒君的百宝箱设为星标精品文章第一时间读背景需求
先说一下问题背景:
这个网站可以查看到深圳各个区的空气质量信息,每个小时更新一次。
需求:把里面的表格信息快速提取并且保存。
Excel可以通过数据 – 自网站这个功能实现简单网页表格数据爬取,想必不少朋友都应该知道并且使用过。
这个方法对于一些简单的网页来说,还是很实用的。但是对于某些网页,就比如pm25.in,用上面的方法则会不太方便,如下图:
直接选中表格上方的√,无法导入。
而如果直接勾选整个页面的话,又会提取到除了表格之外的很多无用的信息。
效果演示
那么,这种情况呢,可以借助vba来灵活的解决这个问题。
先上效果:点击“更新”,直接提取表格信息
然后点击“保存汇总”,将该时刻提取到的信息保存到汇总表,方便后续使用。
核心代码
这整个过程其实不难,其中抓取表格数据最核心的功能代码就是下面这些,每一行代码的含义永恒君都标注在后面了。
如果要更换其他城市,只需要更改URL地址即可。
With Sheets(1).QueryTables.Add("URL;http://www.pm25.in/shenzhen", Range("A2")) '抓取网站网页地址<br /> .RefreshStyle = xlOverwriteCells '覆盖模式<br /> .WebFormatting = xlWebFormattingAll '包含全部格式<br /> .WebSelectionType = xlSpecifiedTables '指定table模式<br /> .WebTables = "1" '第1张table<br /> .Refresh False<br />End With<br />
之后的保存、汇总就是一些常规的vba代码了。
需要说明的是:这个代码只适用于,网页源代码中包含有表格数据的网页。
如果你对这个内容感兴趣的话,可以在公号内回复「网页表格」获取vba文件进行试用吧~~
功能扩展
这个网站的数据是每个小时更新一次,如果需要获取未来某一段时间的数据,需要手工每小时操作一次,也是麻烦事。
其实,VBA也可以实现定时操作的功能的。如果你对这个功能感兴趣的话,欢迎留言,有超过10位小伙伴的话,永恒君将在下篇文章做分享。
你可能还会想看: