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

优采云 发布时间: 2021-11-27 05:15

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

  我们通常使用Excel,并且经常处理本地数据。您知道如何在 Excel 中进行排序、筛选、条件格式、数据透视表、图表等……但您可能不了解 Excel 是如何获取网页数据的!

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

  下面的方法中,前三个不需要写代码,最后一个需要代码,但是我已经写好了,可以用了,所以你也可以学习轻松使用Excel来获取一些网页的初步爬虫数据。方法!

  函数方法

  从 Excel 2013 版本开始,引入了一些 Web 功能。下面两个函数可以配合使用,帮助我们把网页的数据导出到Excel中。

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

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

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

  =FILTERXML(WEBSERVICE("/translate?&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)时,即使老板突然经过,你也能从容应对!不要让你的老板知道这个技能!

  但是你也需要注意使用这个公式。首先,您必须确保您的计算机可以正常连接到互联网。另外,如果有道调整了网页代码或更改了URL入口,则上述公式也将失效。你需要再研究一下逻辑。写公式~

  旧版网页查询功能

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

  手动调用的方法可以在“选项”中的“数据”中设置其显示方式,也可以直接按快捷键Alt+D+D+W(注意:在同时,只需按顺序按下即可!),然后会弹出如下界面:

  

  然后我们只需要输入网页地址,如图所示就是地址/trade/lsjysj_600519.html#06f01。

  

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

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

  

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

  Power Query 获取网页数据

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

  

  由于*敏*感*词*太大无法上传,我将使用截图来说明步骤:

  1、 点击上面的“From 网站”,输入网址,点击“OK”

  

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

  

  3、 然后就可以把表格数据导出到Excel了,还支持手动刷新和自动刷新!

  

  VBA代码方法

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

  使用VBA获取网页数据,当然也可以结合以上三种方式使用,因为写代码意味着可以判断和循环,就像上面的股票收盘价信息一样,可以通过循环获取多个*敏*感*词*会更方便!

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

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

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

  

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

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线