扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
html
创新互联公司专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,西部信息服务器租用,西部信息服务器租用,成都多线服务器托管等服务器托管服务。
head
titleTest/title
script language="VBScript" type="text/vbscript"
!-- '按钮事件
sub Test1_onClick()
msgbox document.getelementsbytagname("table")(0).innerText
end sub
sub Test2_onClick() '提取每单元文本
dim Text
'获取表格中的行集
set trs=document.getelementsbytagname("table")(0).getelementsbytagname("tr")
for each tr in trs '遍历每行
for each td in tr.getelementsbytagname("td") '遍历每行中的每单元
text = text td.innerText vbtab '每单元用制表符分隔
next
text =text vbcrlf '换行
next
msgbox text
end sub
--
/script
/head
body
table cellspacing="0" cellpadding="0" class="list1"
tbody
tr class="listtou"
td width="10%"日期/td
td width="10%"姓名/td
td width="10%"备注/td
/tr
/tbody
tr
td width="10%"2014-01-15 10:40:52/td
td width="10%"张山/td
td width="10%"32/td
/tr
tr
td width="10%"2014-01-16 10:40:52/td
td width="10%"李四/td
td width="10%"29/td
/tr
/table
div
input type="button" name="Test1" value="测试1"
input type="button" name="Test2" value= "测试2"
/div
/body
/html
'主要是对htmlDocument对像的操作,我发现htmlDocument对象可以通过body.InnerHtml载入html文本也能解析,这样比webBrowser1方便,因为是同步的。
'你试试用webClient的downloadString下载网页文本,然后赋给htmlDocument对象下的body.InnerHtml。
'上面只是代码例子,只供参考。用ie打开,某些浏览器可能不支持。
楼上的说法不对,正则式的作用就是匹配未知的一些东西,可以提取.
代码如下:
-----------
Imports System.Text.RegularExpressions
dim sHtml as string=网页内容'自己想办法获取,比如Doc.Body.InnerHtml
dim sResult1 as string=""'“听过哪些草原歌”
sResult1=Regex.Match(sHtml, "\[aA]{1}[ ]{1}class\=t[ ]{1}href.+\(.+)\\/[aA]{1}\").Groups(1).Value
'其余类推...
'保存进文件
大哥把分给我吧.求你了.祝你好运中500万
VB中处理网页文件好象只有这个控件,它是IE的内核,功能已经很强大了.
你遇到的问题我估计是因为网页中使用了框架,你可以这么处理
因为框架网页其实也是由两个或更多的单独网页构成的,所以你也可以把构成框架网页的其中一个页单独打开来浏览,这样做后,就可以用webbrowser.document来取得数据了.
代码:
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 ''
'等待网页完全加载
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
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流