小弟是菜鸟~刚刚接触vb没多久……现在想从www.fmrich.com 把板块的名字 和他的url地址拿下来放在一个listview 里面 我写了一段很搓的代码 一循环就不对 去除循环一个个拿都能的到 希望各位大虾能帮忙啊!
代码很搓~~~ 变量名字都是中文拼音
Dim yuandaima
Private Sub Command1_Click()Inet1.Protocol = icHTTP
yuandaima = Inet1.OpenURL(Text1.Text)
Text3.Text = yuandaima
End SubPrivate Sub Command2_Click()
i = 1
Do While i < Len(yuandaima)
zifuweizhi = InStr(i, yuandaima, "<h2><a href=" + Chr(34) + "forum", vbTextCompare)
If zifuweizhi <> 0 Then
i = zifuweizhi
jiequ = Right(yuandaima, (Len(yuandaima) - zifuweizhi))
Dim itmx As ListItem
'获得title
fuhaoweizhi = InStr(1, jiequ, "</a></h2>", vbTextCompare)
jiequ2 = Mid(jiequ, 1, fuhaoweizhi - 1)
fuhaoweizhi2 = InStr(1, jiequ, Chr(34) + Chr(62), vbTextCompare)
biaoti = Right(jiequ2, (Len(jiequ2) - fuhaoweizhi2 - 1))
'获得url
urlweizhi = InStr(1, jiequ2, Chr(61) + Chr(34), vbTextCompare)
urljiequ = Right(jiequ2, (Len(jiequ2) - urlweizhi - 1))
fuhaoweizhi3 = InStr(1, urljiequ, Chr(34) + Chr(62), vbTextCompare)
urldizhi = Mid(urljiequ, 1, fuhaoweizhi3 - 1)
Set itmx = ListView1.ListItems.Add(, , biaoti)
itmx.SubItems(1) = Text1.Text + "/" + urldizhi
Else
MsgBox "循环结束", 48, "嘿嘿"
Exit Do
End If
Loop
End SubPrivate Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
ListView1.View = lvwReport
ListView1.ColumnHeaders.Add , , "title"
ListView1.ColumnHeaders.Add , , "url"
End SubPrivate Sub Inet2_StateChanged(ByVal State As Integer)End Sub
代码很搓~~~ 变量名字都是中文拼音
Dim yuandaima
Private Sub Command1_Click()Inet1.Protocol = icHTTP
yuandaima = Inet1.OpenURL(Text1.Text)
Text3.Text = yuandaima
End SubPrivate Sub Command2_Click()
i = 1
Do While i < Len(yuandaima)
zifuweizhi = InStr(i, yuandaima, "<h2><a href=" + Chr(34) + "forum", vbTextCompare)
If zifuweizhi <> 0 Then
i = zifuweizhi
jiequ = Right(yuandaima, (Len(yuandaima) - zifuweizhi))
Dim itmx As ListItem
'获得title
fuhaoweizhi = InStr(1, jiequ, "</a></h2>", vbTextCompare)
jiequ2 = Mid(jiequ, 1, fuhaoweizhi - 1)
fuhaoweizhi2 = InStr(1, jiequ, Chr(34) + Chr(62), vbTextCompare)
biaoti = Right(jiequ2, (Len(jiequ2) - fuhaoweizhi2 - 1))
'获得url
urlweizhi = InStr(1, jiequ2, Chr(61) + Chr(34), vbTextCompare)
urljiequ = Right(jiequ2, (Len(jiequ2) - urlweizhi - 1))
fuhaoweizhi3 = InStr(1, urljiequ, Chr(34) + Chr(62), vbTextCompare)
urldizhi = Mid(urljiequ, 1, fuhaoweizhi3 - 1)
Set itmx = ListView1.ListItems.Add(, , biaoti)
itmx.SubItems(1) = Text1.Text + "/" + urldizhi
Else
MsgBox "循环结束", 48, "嘿嘿"
Exit Do
End If
Loop
End SubPrivate Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
ListView1.View = lvwReport
ListView1.ColumnHeaders.Add , , "title"
ListView1.ColumnHeaders.Add , , "url"
End SubPrivate Sub Inet2_StateChanged(ByVal State As Integer)End Sub
zifuweizhi = InStr(i + 1, yuandaima, "<h2><a href=" + Chr(34) + "forum", vbTextCompare)
jiequ = Right(yuandaima, (Len(yuandaima) - zifuweizhi))
Dim itmx As ListItem
'获得title
fuhaoweizhi = InStr(1, jiequ, "</a></h2>", vbTextCompare)
jiequ2 = Mid(jiequ, 1, fuhaoweizhi - 1)
fuhaoweizhi2 = InStr(1, jiequ, Chr(34) + Chr(62), vbTextCompare)
biaoti = Right(jiequ2, (Len(jiequ2) - fuhaoweizhi2 - 1))
'获得url
urlweizhi = InStr(1, jiequ2, Chr(61) + Chr(34), vbTextCompare)
urljiequ = Right(jiequ2, (Len(jiequ2) - urlweizhi - 1))
fuhaoweizhi3 = InStr(1, urljiequ, Chr(34) + Chr(62), vbTextCompare)
urldizhi = Mid(urljiequ, 1, fuhaoweizhi3 - 1)
Set itmx = ListView1.ListItems.Add(, , biaoti)
itmx.SubItems(1) = Text1.Text + "/" + urldizhi
itmx.SubItems(2) = zifuweizhi代码不是很难啊。。就是字符串的操作 但是一循环就不对了!痛苦的等待中~~~
Private Sub ParseLinksTITLE(HTMLText As String)
Dim LinkStart As Integer
Dim LinkEnd As Integer
Dim FileSize As Long
Dim DocTitle As String
LinkStart = InStr(UCase(HTMLText), "<TITLE>")
LinkStart = LinkStart + Len("<TITLE>")
LinkEnd = InStr(UCase(HTMLText), "</TITLE>")
DocTitle = Mid$(HTMLText, LinkStart, LinkEnd - LinkStart)
Form1.Caption = DocTitle
End Sub
Private Sub ParseLinks(HTMLText As String)
Dim LinkStart As Long
Dim Linkstop As Long
On Error Resume Next
LinkStart = InStr(1, UCase(HTMLText), "HREF=")
If LinkStart = 0 Then
Exit Sub
Linkstop = InStr(LinkStart, HTMLText, ">")End If
Do While LinkStart <> 0
URLname = Mid$(HTMLText, LinkStart, Linkstop - LinkStart)
URLname = Trim(URLname)URLname = Right$(URLname, Len(URLname) - 6)
URLname = Trim(URLname)
q = Right$(URLname, 1)
If q = Chr(34) Or q = Chr(39) Then
URLname = Left$(URLname, Len(URLname) - 1)
End If
Form1.List1.AddItem URLname
LinkStart = InStr(Linkstop, UCase(HTMLText), "HREF=")
If LinkStart = 0 Then
Exit Do
End If
Linkstop = InStr(LinkStart, HTMLText, ">", 1)
Loop
End SubPrivate Sub Command1_Click()
Dim s As String
Inet1.Protocol = icHTTP
s = Inet1.OpenURL("www.fmrich.com")
ParseLinks s
End SubPrivate Sub Command2_Click()
Dim s As String
Inet1.Protocol = icHTTP
s = Inet1.OpenURL("www.fmrich.com")ParseLinksTITLE s
End Sub
我本来的思路就是 先拿到页面的源文件 然后寻找<h2><a href="forum 这个字符串 有的话就通过一系列的字符串操作把 财富之路 forum-4-1.html ,项目与合作 forum-5-1.html 等拿出来 我不写循环都拿的出 但是一写 循环就变成死循环了 不知道那里错了 !
循环的思路是:
找到一个<h2> <a href="forum,再找一个</a> </h2> 取出所需要的东西后.再从</a> </h2>后找下一个<h2> <a href="forum和下一个</a> </h2>再取出所要的东西,直到文件尾