vba 抓取php网页,用VBA操作网页并抓取数据

本文介绍了如何使用VBA自动化操作IE浏览器,访问PHP网页工具,输入汉字并点击转换按钮,批量获取带声调的拼音,从而避免手动复制的繁琐过程。示例代码展示了具体的实现步骤,包括定位网页元素、触发转换和抓取结果。

问题:

最近老婆让我给上二年级的孩子做一份生字拼音表(带声调),这样孩子每天就可以读拼音默写词语,也就不需要家长陪在身边朗读了。

录入字母容易解决,但标声调就不好办了。我百度了一下,金山词霸提供了一个网页工具,输入汉字可转换成带声调的拼音。那问题来了:现在有八百多个生词,如果要每一个都这样查一次然后拷贝粘贴出来,简直太麻烦了。

97033589_1

方案:

既然拼音也是要录入到Excel的,那么用VBA来操作网页,把输入汉字-->点击“开始转换”按钮-->拷贝转换结果-->粘贴到Excel等步骤自动化,就省事多了。

97033589_2

代码:

Private Sub CommandButton1_Click()

Dim IE As Object

Dim i As Integer

i = 1

'打开网页:创建一个IE对象,然后给一些属性赋值。Visible是可见性,navigate是网页地址

Set IE = CreateObject('internetexplorer.application')

With IE

.Visible = True

.navigate 'http://hanyu.iciba.com/pinyin.html'

'等待网页完全加载

Do Until .ReadyState = 4

DoEvents

Loop

'拷贝汉字到网页文本框,然后点击转换按钮,并取出转换结果

Do While Sheets('sheet1').Cells(i 1, 1).Value <> ''

'从IE.Document.all句柄中把页面上要使用的节点找出来。这里的方法是:

.document.all('source').Value 给以source为ID的文本框赋值

.document.all.tags('img')(1).Click  点击图片集合里的第二张图片

.document.all('to').Value  取出以to为ID的文本框内容

.document.all('source').Value = Sheets('sheet1').Cells(i 1, 1).Value

.document.all.tags('img')(1).Click

Do Until .ReadyState = 4

DoEvents

Loop

Sheets('sheet1').Cells(i 1, 2).Value = .document.all('to').Value

i = i 1

Loop

'关闭网页

.quit

End With

End Sub

代码解释:(见注释)

贴士:

1)VBA只能操作IE浏览器,原因就一句话:都是微软家的产品嘛

2)要先引用Micorsoft Internet Controls

拓展:

你的工作中是否遇到过需要抓取网页数据的任务呢。。。?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值