vb webbrowser 获取指定元素

有个网页,
<div class="listInfo">
<h3><a href="/view/3510.html" title="冰果" target="_blank">冰果</a></h3>
<P>浏览次数:518278</p>
<P>动漫类型:完结动漫</p>
<P>动漫地区:日本</p>
<P>动漫时间:2012</p>
</div>

<li><a href="/list/7.html">连载动漫</a></li>
<li><a href="/list/18.html" >完结动漫</a></li>

<font color=red>7375</font>部动漫,今日更新<font color=red>7</font>
现在可以使用 for each in getElementsByTagName 函数 获取到这个 DIV段 然后根据 Classname确认
但是下面的 <P> <a> <font> 里面的内容也都是用 for each 遍历的。
我现在有个问题,我能不能直接获取数组
例如 <p>的数组,然后 直接指定元素 例如 我想直接得到 第一个 <p> 的值也就是 218278
第二个 font的值,也就是7 第一个 A的值 也就是="/list/7.html
网上资料说getElementsByTagName获取的是元素集合,应该也就是数组了,而且一般使用for each 也大都是数组
但是我照着一般使用数组的方法,就是不行
想定位于吗某个元素 ,不想使用字符查找,
因为某些网页的数据不定,但是位置肯定。望高手解答。
我使用的是getElementsByTagName
FONT可以找到,但是一定要用 for each 循环遍历

List1.AddItem J.getElementsByName("FONT")(0).innerText
改为
List1.AddItem J.getElementsByTagName("FONT")(0).innerText

Name是指标签的Name属性,如 <span name="font">....</span>
TagName才是标签名,如 <font>...</font>追问

我打错了,代码用的就是getElementsByTagName,为什么不能调用数组

追答

你那个J按理应该是7375的父元素,如果不是,那么就会出错的。

改成
List1.AddItem WebBrowser1.Document.getElementsByTagName("FONT")(0).innerText

试试

追问

这样子不行,这几个 font 是某个 DIV中的 ,j就是那个 div
整个网页好多 font呢

追答

你先说说WebBrowser1.Document.getElementsByTagName("FONT")(0).innerText能不能取到值,如果能,那就可以肯定是你的J的取值有问题

追问

也许是我的取值有问题吧,但是用WebBrowser1.Document的话就无法准确定位了,因为要以我找到的那个DIV为起点,若是没有好的办法,只能自己转成数组了。
可能里面的层次关系不是我所认为的吧

追答

补充一点:集合不是数组,两者虽然有相似处,但不是同一个概念。
另外getElementsByTagName("xxxx")(0)的用法本身是没问题的,关键是前面的引用对象一定要正确,而且所要找的标签必须至少有一个。
如果是多层关系,你甚至可以这样:
....getElementsByTagName("div")(0).getElementsByTagName("li")(1).getElementById("xxx")
就这样一层一层剥离出来,只要保证它们每相邻的两个对象间确实是父子关系即可。

追问

刚才又重新试了下,可以了,前面可能一个层次没有找对,还有个可能我把getElementsByTagName("li")(1).写成 ("li").(1)了,这里还想请问下,我刚才写了个转数组的函数。
for each i in j.getElementsByTagName("li")
a=a+1
K(a)=i
next
数组K该设为什么类型呢

追答

Dim k() As Object

温馨提示:内容为网友见解,仅供参考
无其他回答

VB如何获取webbrowser源码指定文本
1. 第一个红框前的文本:WebBrowser1.Document.getElementById("list_uin").getElementsByTagName("label")(0).innerText 2. 第二个红框的文本:WebBrowser1.Document.getElementById("list_uin").getElementsByTagName("label")(1).innerText ...

vb 用webbrowser获得标记的内容
WebBrowser1.document.getElementById("span1").innerText

求助VB WebBrowser获得网页指定元素并显示在程序中
WebBrowser1.Navigate ""Timer1.Interval = 100 '每秒更新一次 Timer1.Enabled = True '启动定时器 End Sub Private Sub Timer1_Timer()ss = WebBrowser1.Document.body.innerText '得到所有文字 aa = "国家授时中心标准时间" '找出要分离的文字前面有标志性的文字 bb = InStr(1, ss, aa) '...

vb怎么提取网页源代码的指定内容
先得到源代码:这里用WebBrowser1控件 text1=WebBrowser1.Document.documentElement.outerHTML 下面是筛选实例 自编函数Getin 范例 GetIn(字符串, 起始, 结束)GetIn(text1, ">", "<") '截取中间 GetIn(text1, "<", "") '截取后半段 GetIn(text1, "", ">") '截取前半段 Function...

vb webbrowser 获取指定元素
List1.AddItem J.getElementsByName("FONT")(0).innerText 改为 List1.AddItem J.getElementsByTagName("FONT")(0).innerText Name是指标签的Name属性,如 ... TagName才是标签名,如 ...

VB获取网页特定内容
用WebBrowser控件 你把HTML代码保存成文件,然后 用webbrowser.navigate FileName 然后那个控件就能看到网页了 部件-microsoft internet Controls

VB获得指定网页中的部分内容
首先要在窗体中添加webbrowser控件,我在这儿将这个控件命名为web1,你要设置,网页必须在该控件中打开。。其次再添加一个按钮和文本框。然后为按钮添加如下代码:Set oDoc = Web1.Document Set oTxtRgn = oDoc.selection.createRange txtwyxs.Text = oTxtRgn.Text 在程序运行过程中只要你在Web中...

用VB webbrowse控件浏览网页,如何取得网页上 的数据 ?
2.从WebBrowser获得document进行DOM处理.(WebBrowse的document也可以直接进行DOM处理,只是功能少点)代码示例:WebBrowser1.Silent = True WebBrowser1.Navigate "网页的网址"Do Until WebBrowser1.ReadyState = 4 '等待加载完毕 DoEvents Loop '以下的语句需要引用mshtml 才能使用 dim doc as HTMLDocument ...

VB.net webBrowser控件获取如何获取下面这网页元素的值
然后在vb.net的webbrowser中加载这个test.html,加载完毕后点击一个按钮获取input的value值,实现代码如下:' 此方法为Form1的加载事件 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' 加载本地文档test.html WebBrowser1.Url = New Uri(String.Format("file:\/\/...

vb webbrowser怎样截取打开的网址中某个字符?
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)If pDisp Is WebBrowser1.Object Then Text1.Text = Split(URL, ".")(1)End Sub

相似回答