vba 网页数据抓取(如何轻松用Excel获取网页数据的一些初步的爬虫方法)

优采云 发布时间: 2022-04-14 10:24

  vba 网页数据抓取(如何轻松用Excel获取网页数据的一些初步的爬虫方法)

  通常我们使用Excel,经常处理本地数据。你知道 Excel 的排序、过滤、条件格式、数据透视表、图表等……但你可能不知道如何在 Excel 中获取网页上的数据!

  网络爬虫?!你可能认为你必须编写代码来实现这一点。其实除了代码,Excel还有一些现成的功能,让你不用代码也能获取网页的数据!

  下面的方法中,前三种不用写代码,最后一种需要代码,不过我已经写好了,可以用了,这样你也可以学会轻松使用Excel获取一些web的初步爬虫页面数据方法!

  功能方法

  从 Excel 2013 版本开始,引入了一些 Web 功能。下面两个函数可以一起使用,帮助我们从网页获取数据到Excel。

  FILTERXML(xml, xpath),从 XML 数据中返回指定的数据。网页上的许多数据都以 XML 的形式存在。该函数用于提取 XML 中的指定信息。

  WEBSERVICE(url),返回网页中的数据,可以理解为这个函数可以获取一堆XML字符串数据。

  例如下面的公式使用有道翻译的网站得到翻译结果:

  =FILTERXML(WEBSERVICE(";i="&B2&"&doctype=xml&version"),"//translation")

  

  如果你把上面的公式复制到Excel,你只需要在B2单元格输入你要翻译的内容,公式就会把翻译结果返回给你!

  

  是不是觉得超级方便!对于外部数据的轻量级连接,这个函数方式还是比较方便的。

  除了翻译,使用此功能还可以协助您进行股票交易!我在工作,不方便使用手机或阅读财经网页,但我想关注实时股价。我怎样才能打破它?

  把下面的公式复制到B1单元格,然后在A1单元格输入你关心的股票代码,B1就可以显示实时股价了,想刷新的时候按F9就行了~

  =VALUE(TRIM(MID(SUBSTITUTE(WEBSERVICE("/stockdata/stock_quote.aspx?stocklist="&A1&"&time=" & TEXT(NOW(), "hhmmss"))),",",REPT(" ",9 9)),2*99,111)))

  当你在专心看Excel工作(chao)工作(gu)时,即使老板突然路过,你也能从容应对!不要让你的老板知道这个技能!

  但是你也需要注意使用这个公式。首先,您必须确保您的计算机可以正常连接到 Internet。另外,如果你翻译调整了网页代码,或者网站的入口发生了变化,上面的公式也会失效,你需要重新研究一下逻辑。写公式~

  旧版网页查询功能

  在Excel 2016之前,一直有获取网页数据的功能,在Excel 2016推出PQ后隐藏了,但是还是可以手动调出来的!

  手动方法可以从“选项”中的“数据”设置其显示,也可以直接按快捷键Alt+D+D+W(注:不需要同时按,直接按依次进行,就可以了!),会弹出如下界面:

  

  然后我们只需要输入网页地址,如图所示地址为#06f01。

  这个功能可以帮助我们识别网页中的表格,然后我们只需要选中表格(点击*敏*感*词*箭头选择),点击右下角的导入,就可以将数据导入Excel了!

  而且还可以刷新这张表,同时支持手动刷新和自动刷新,非常方便~

  

  这种方法的问题在于,并不是所有的网页都能获取数据,因为你可能无法获取到真实的网址,所以你应该尽量找到最深入的地址。你有办法爬取,别人有办法逆向,所以要不断获取网页的数据,需要密切关注网页是否发生变化~

  Power Query 获取网页数据

  从Excel 2016开始,PQ已经集成在Excel中,并且计划替换旧版本的数据查询和获取功能,所以使用PQ也可以帮助我们从网页中获取数据!

  

  因为*敏*感*词*太大上传不了,我就用截图来说明步骤:

  

  2、在出现的导航器中,点击表格开头的图标,右侧会有这些表格的预览,选择你要导入的表格,点击右下角的“加载”

  

  3、然后就可以获取表格数据到Excel了,而且还支持手动刷新和自动刷新!

  

  VBA代码方法

  其实以上方法都不是真正的“爬虫”技能。要更灵活地获取数据,需要使用VBA代码。

  使用VBA获取网页数据当然可以结合以上三种方式,因为写代码就是可以判断和循环,就像上面的股票收盘价信息一样,可以循环获取多只股票的数据现在,会更方便!

  比如用VBA调用第二种方法,结合Excel的基本功能对数据进行组织提取,就可以得到历史天气数据!下面使用VBA方式获取天气数据~

  对于零售业来说,天气确实是一个非常重要的因素,它会影响客流和季节性产品的销售。因此,有必要对历史天气数据进行分析!

  如何批量获取天气数据?以下是获取北京2019年11月历史天气数据的结果:

  

  这需要使用 VBA 代码。上述方法不适合大量获取数据。不会码字?没关系,我已经写好解释了,你复制后稍加修改即可使用。(代码在文末)

  如果还想获取多个城市、多个年份、多个月份的数据,那么就需要考虑更多的情况。您可以根据文末提供的代码修改实现。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线