如何获取控件的desc_Excel VBA爬虫:如何自动爬取网页的数据?

本文介绍如何使用Excel VBA爬虫抓取网页数据,特别是从上证债券信息网上获取债券协议回购市场数据。通过插入WebBrowser控件,设置属性,模拟输入日期并点击查询,然后解析页面数据存入Excel。尽管效率不高,但在有限条件下,这种方法为不熟悉Python的用户提供了一种获取数据的途径。
摘要由CSDN通过智能技术生成

   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

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

     做数据分析,很重要的一部分准备工作就是获取数据,数据一般有多个来源,比如单位数据库存储的数据、报表等填写的数据、网页上的公共数据等,本文以抓取网页上的公共数据为例,做一个简单的示例,演示如何用Excel的VBA爬取数据。

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

http://bond.sse.com.cn/data/statistics/overview/agreementrepo/

89d0a4656b79cd13cde2de631db54c15.png

尝试使用Excel获取一个时间范围内的全部记录(上图红色方框内数据表的信息)。

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

----------------------------------------1、打开EXCEL,建立两张sheet表    1)data,用来存放获取的结果    2)爬数据,用来存放WebBrowser控件。如图:

e268da72be4f118ae4aea2d7608ac601.png

2、插入控件
方法如图所示:
开发工具—插入AcitveX控件,找到microsoftWebBrowser控件—拖动。

88018e1bc30c23e3247a325ed56a307c.png

3、设置控件的属性

跟进自己的需要,对空间进行设置。此处略,使用默认值。

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

5cff67ec0f7e36b4e0e2e44c290d379e.png

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

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

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

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

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

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

e86de698783340eac60cf3c46dd8c876.png

6、运行程序

运行程序,然后略做等待,即可查看爬取到的数据。如下图:

90aafabee900617b5da0d640295017bf.png

注意事项:

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

对于爬取难度较高的网页,还是优先推荐考虑使用Python。

    a75f252fd0a93eb16eeca26840019592.png/20180905

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值