使用VB提取网页中的内容,为什么程序执行后TEXT框中什么都没有?(代码如下,可通过)
使用VB提取网页中的内容,为何程序执行后TEXT框中什么都没有?(代码如下,可通过)
这是根据一位前辈的代码改的,我就是想把一个网页中的txt都提取出来,但是没成功,请教一下是怎么回事,应该怎么解决呢?
原帖地址:http://bbs.****.net/topics/270017137
------解决方案--------------------
你用这个代码吧
如果不是提交数据的话,第二个参数留空就可以了
比如
Text1.Text=GetPage("http://www.pm2d5.com/city/beijing.html")
------解决方案--------------------
如果是纯文本的话你再加下边的这函数吧
用法:Text1.Text=GetText(GetPage("http://www.pm2d5.com/city/beijing.html"))
------解决方案--------------------

早知道不回了,原贴数据是ajax的,要做页面分析之后才能得数据的
Private Sub Command1_Click()
WebBrowser1.Navigate "http://www.pm2d5.com/city/beijing.html"
End Sub
Private Sub WebBrowser1_StatusTextChange(ByVal Text As String)
If Text = "完成" Then
'网页读取完后执行这里
Dim DataInfo As String
'从网页中取得全部文本信息
DataInfo = WebBrowser1.Document.body.innerText
Text1.Text = DataInfo
End If
End Sub
这是根据一位前辈的代码改的,我就是想把一个网页中的txt都提取出来,但是没成功,请教一下是怎么回事,应该怎么解决呢?
原帖地址:http://bbs.****.net/topics/270017137
------解决方案--------------------
你用这个代码吧
如果不是提交数据的话,第二个参数留空就可以了
比如
Text1.Text=GetPage("http://www.pm2d5.com/city/beijing.html")
Public Function GetPage(ByVal URL As String, Optional ByVal PostData As String = "") As String
Dim XML As Object
Set XML = CreateObject("WinHttp.WinHttpRequest.5.1")
XML.Option(6) = False
XML.Option(4) = 13056
If Len(PostData) = 0 Then
XML.Open "GET", URL
XML.Send
Else
XML.Open "POST", URL
XML.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
XML.SetRequestHeader "Content-Length", LenB(StrConv(PostData, vbFromUnicode))
XML.Send PostData
End If
GetPage = XML.ResponseText
Set XML = Nothing
End Function
------解决方案--------------------
如果是纯文本的话你再加下边的这函数吧
用法:Text1.Text=GetText(GetPage("http://www.pm2d5.com/city/beijing.html"))
Public Function GetText(ByVal Data As String) As String
Dim Result As String, A As Long, B As Long
Result = Data
'过滤Body,不加的话Title里的内容也会进去
A = InStr(LCase(Result), LCase("<body>")) + 6
B = InStr(LCase(Result), LCase("</body>"))
If A > 0 And B > A Then Result = Mid(Result, A, B - A)
'下边去掉所有html标签中的内容
Do Until (InStr(Result, "<") = 0) Or (InStr(Result, ">") = 0)
A = InStr(Result, "<")
B = InStr(Result, ">")
Result = Left(Result, A - 1) & Right(Result, Len(Result) - B)
Loop
GetText = Result
End Function
------解决方案--------------------
早知道不回了,原贴数据是ajax的,要做页面分析之后才能得数据的