我想获取某网页中深度为3的网页超链接,可以使用什么样的方法呢?
比如网页11中有超链接网页21、网页22、网页23。
网页21的超链接31、超链接32、超链接33.
网页22的超链接34、超链接35、超链接36.
网页23的超链接37、超链接38、超链接39.
我现要想要的功能是输入网页11的地址,便可获得31~39的地址。
_____________________________________________________
现在的可以提取到21、22、23了,是通过把网页11放在WebBrowser中,并且事件放在Webbrowser的DocumentComplete(下载结束后)。这个方法虽然可以提取深度2的超链接,可是无法提取深度3的,总不能把深度2的超链接再一个一个的放在Webbrowser中去循环读取出深度3的地址来吧。假如使用循环的话,怎么才能控制DocumentComplete结束后才Next呢?
比如网页11中有超链接网页21、网页22、网页23。
网页21的超链接31、超链接32、超链接33.
网页22的超链接34、超链接35、超链接36.
网页23的超链接37、超链接38、超链接39.
我现要想要的功能是输入网页11的地址,便可获得31~39的地址。
_____________________________________________________
现在的可以提取到21、22、23了,是通过把网页11放在WebBrowser中,并且事件放在Webbrowser的DocumentComplete(下载结束后)。这个方法虽然可以提取深度2的超链接,可是无法提取深度3的,总不能把深度2的超链接再一个一个的放在Webbrowser中去循环读取出深度3的地址来吧。假如使用循环的话,怎么才能控制DocumentComplete结束后才Next呢?
不要用 DocumentComplete 来判断,
取到值后,就可以直接用WebBrowser来打开新地址,再读取下一级链接
看标题还以为楼主说的是套了几层iframe呢
而在DocumentComplete 之前页面上已经有所需要的数据了,能够读到就不必在等了。
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
For Each sform In WebBrowser1.Document.links
List1.AddItem sform
Next
End Sub原本是把这个代码写在DocumentComplete中,现在应该写在哪里呢?
''''##########
do
Webbrowser1.Navigate2 下一页
on error resume next
do
set dmt = WebBrowser1.Document
下一页 =""
下一页 = dmt.links(2).value
if 下一页 <> "" then exit do
DoEvents
loop
'处理 links 判断处理是否 exit loop
loop
''###########分太少,代码比较繁琐,大概就这个意思,这个代码只取 33,36,39
你自己修改一下,应该在处理 links 处还要一层循环