excel网页数据抓取vba(Python如何用Excel的VBA爬取数据?(一))

优采云 发布时间: 2021-09-09 21:14

  excel网页数据抓取vba(Python如何用Excel的VBA爬取数据?(一))

  网络爬虫(也称为网络蜘蛛、网络机器人,在 FOAF 社区中,更常见的是网络追逐)是根据某些规则自动抓取万维网上信息的程序或脚本。其他不太常用的名称是蚂蚁、自动索引、模拟器或蠕虫。

  目前最流行的爬虫方法一般都是通过Python来实现的,Python有很多有用的第三方库来实现。不熟悉使用Python的朋友,有没有办法通过Excel VBA来实现?

  要做数据分析,准备工作中很重要的一个环节就是获取数据。数据通常来自多个来源,例如单位数据库中存储的数据、报表填写的数据等,网页上的公开数据等。本文将抓取网页以公开数据为例,做一个简单的例子演示如何使用 Excel VBA 抓取数据。

  测试网页:上证债券信息网

  

  尝试用Excel获取某个时间范围内的所有记录(上图红框内数据表中的信息)。

  要求:按日期从网页中抓取2018年1月1日至今的债券协议回购市场数据(上表所有数据)。操作方法:

  ----------------------------------------1、打开EXCEL并创建两个sheet表1)data,用于存放得到的结果2)crawling数据,用于存放WebBrowser控件。如图:

  

  2、insert 控件

  方法如图:

  开发工具——插入 ActiveX 控件,找到 microsoftWebBrowser 控件——拖动它。

  

  3、设置控件的属性

  跟进您的需求并设置空间。此处省略,使用默认值。

  4、通过控件分析网页上的日期。我们需要查询一段时间内的数据。因此,我们需要在日期控件中模拟输入日期,然后点击“查询”按钮。查看网页源码,找到对应控件的名称和位置:

  

  从上面的截图可以看出,日期控件的id是“searchDate”,输入日期可以通过如下代码控制:

  WebBrowser1.Document.All.Item("searchDate").Value = RQ

  同样,再次查看查询按钮。查询按钮的执行程序为“javascript:goSwitch()”,可以通过如下代码调用:

  WebBrowser1.Document.parentWindow.execScript "javascript:goSwitch()

  另外,网页上数据表的id是“datelist”。

  5、Code 实现 根据上述,编写VBA代码,代码逻辑如下:使用for循环,根据网页上的日期填写数据,点击“查询”;等待网页数据刷新,抓取网页上的数据,保存到数组arr中,然后将数组保存到sheet表中。

  

  6、运行程序

  运行程序,稍等片刻即可查看爬取的数据。如下图:

  

  注意事项:

  如果事件效率不高或者数据量不大,条件有限,可以使用这种方法。 (效率低下也是一)这种方法的弊端之一。

  对于难以抓取的网页,建议先使用Python。

  

  /20180905

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线