我使用Inet控件下载了html文件,这个当然是文本的html数据了,我在工程中引用了MSHTML库,然后我想使用DCOM来操作html(提取其中的数据),不知道大家有没有什么代码,或者资料介绍一下.目前我自己在这个方面真的是焦头烂额,苦啊~~~
解决方案 »
- VB使用SQLite问题,出错“ActiveX 部件不能创建对象”,有点急。。
- 水晶报表怎么设置文本对像的值
- 如何让Label中的文字居于Label控件的正中央?
- 我有一个很难的问题,请高手帮忙!谢谢
- 数据库更新(好几天了,请大侠帮助)
- 引用Excel问题?
- 高手,你们的QQ号是多少啊,来登记吧!
- 为什么在我的程序中使用了一个控件,在某些计算机上无法运行,老提示某某控件未注册。还有在编译时,这个控件文件是不是被加入了可执行文
- 如何把这句SQL返回的数据多显示出来
- 如何设置另一个程序的EDIT的文本内容啊(我有这个EDIT的HWND)!!!!!
- 热敏打印机
- crystl32.ocx控件在xp sp2下无法注册?
Dim doc As IHTMLDocument2Private Sub Inet1_StateChanged(ByVal State As Integer)If State = 11 Then
InfoLabel.Caption = " 出现错误!可能无法访问网络或其他原因" & vbCrLf
Exit Sub
ElseIf State = 12 Then
HtmlCode = ""
Do '循环接收数据
DoEvents
bufStr = Inet1.GetChunk(1024, icString) If Len(bufStr) = 0 Then Exit Do
'接受到的所有数据存放在变量 "HtmlCode"中
HtmlCode = HtmlCode & bufStr
Loop
'Text1.Text = HtmlCode '不能超过32k
bufStr = "" '使bufStr为空,保存下面提出的小说
FinalText = CutMark(bufStr)
Text1.Text = FinalText
MousePointer = vbDefault
Timer1.Enabled = True '可以执行下一页面的下载了
End If
End Sub
Option Explicit
'声明
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
'
Private Function DownloadFile(URL As String, LocalPath As String) As Boolean
If Not URLDownloadToFile(0, URL, LocalPath, 0, 0) Then
DownloadFile = True
Else
DownloadFile = False
End If
End Function
'实例
Private Sub Command1_Click()
Dim a As Boolean
a = DownloadFile("http://community.csdn.net/Expert/topic/3850/3850250.xml?temp=.888714", "c:\abc.txt")
Debug.Print a
End Sub
URL = "http://community.csdn.net/Expert/topic/3850/3850250.xml?temp=.7217218"
Set oSend = CreateObject("Microsoft.XMLHTTP")
SourceCode = oSend.open("GET", URL, False)
oSend.send
If Err.Number <> 0 Then Debug.Print Err.Description
SourceCode = bytes2BSTR(oSend.responseBody)
Debug.Print SourceCode
End SubFunction bytes2BSTR(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn, i, 1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn, i + 1, 1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
最好就是可以使用集合。MSHTML中的ElementCollection就很好。但是我不知道在没有使用WebBrowser的情况下,也就是说没有一个web1.Document的情况下,怎样操作纯文本的html?
Dim objDocument As MSHTML.HTMLDocumentSet objDocument = objMSHTML.createDocumentFromUrl("http://www.163.com", vbNullString)
While objDocument.ReadyState <> "complete"
DoEvents
WendMsgBox objDocument.body.innerTextcreateDocumentFromUrl函数参数试着变动就能实现了