用Vb提取网页中的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Vb提取网页中的数据相关的知识,希望对你有一定的参考价值。
我用vb来提取网页中表格中的数据,使用的是 webbrowser控件.但是在webbrowser.document中有些数据不能下载下来.后来发现,在"源文件"中可以查看到的数据能下载下来,若在"源文件"查看不到的数据不能下载下来.请问如何下载网页中的数据,除了webbrowser控件可用,还有什么控件或方法可用,且功能更强大?
首先谢谢两位热心人的帮助!
我把自己的问题说清楚一些.我在此网站中提取数据:http://live.netsh.com/match_gb.php假如我只想提取表格里面的内容,但是我下面的代码:
For Each tb In tbs
For i = 0 To tb.rows.length - 1
Set tr = tb.rows.Item(i)
For j = 0 To tr.cells.length - 1
str = str + " " + tr.cells.Item(j).innerText
Next j
Print #1, str
Next i
Next
重复了好多数据,并且表格里的内容似乎在一行.
另外一种情况就是在http://info.bet007.com/league_match/league_vs/2006-2007/31.htm网站中,其中间表格里的数据根本就提取不出来.
希望有心人给予指教,如果这两个问题解决了,那么对于网站提取数据就没有技术难度了.
你遇到的问题我估计是因为网页中使用了框架,你可以这么处理
因为框架网页其实也是由两个或更多的单独网页构成的,所以你也可以把构成框架网页的其中一个页单独打开来浏览,这样做后,就可以用webbrowser.document来取得数据了. 参考技术A 引用问题。。很简单。。
提示下
1、在 WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
中写代码,用URL判断下载完毕的是否你要提取数据的页面
2、用 WebBrowser1.Document.Frames(0).Document.body.innerhtml 访问帧页面中的内容
3、用字符串处理函数读取数据
4、访问不是帧页面中的内容用WebBrowser1.Document.body.innerHTML本回答被提问者采纳 参考技术B 一般都是采用HTTPXML的。用WEBBROWSER的话,有些动态数据比较容易获取
VB中提取cookies后如何get
也是类似一个刷页面的工具我已经获取到cookies,如果在get cookies访问指定的页面达到刷量的效果
参考技术A 利用winsocket编程发送伪造COOKIE 在上一节中我所举的例子是一个存活期很长的COOKIE,对于这种 COOKIE他会生成在我们的本地盘上的,而对于那些关闭浏览器就失效 的COOKIE我们该怎样来进行伪造呢? 首先我们应该知道在我第一节的例子中弹那个"you are a administrator" 框框的网页(level1.htm)其实是下载在我的本地然后执行的,也就是说 他对COOKIE的检验读取也是在本地,那如果是在远程服务器上呢?比如 一个ASP程序他又是如何读取我们的COOKIE的呢? 先来看看基本的东东吧:当我们使用HTTP协议向远程主机发送一个 GET或是POST请求时,那么如果有这个域名的COOKIE存在(不管是在内存中 还是本地盘上的)都将和请求一起发送到服务器去. 下面的就是一个实际的例子: GET /ring/admin.asp HTTP/1.1 Accept: */* Accept-Language: zh-cn Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Host: 61.139.xx.xx Connection: Keep-Alive Cookie: level=user; ASPSESSIONIDSSTCRACS=ODMLKJMCOCJMNJIEDFLELACM 看到最后一行了吧:) 然后我们再来看看服务器是如何进行COOKIE检验的,我举了一个简单的例子: 有两个ASP文件一个叫admin.asp,还有一个叫level.asp -----------admin.asp------------------ <%response.write now()%> <%response.write "<br>"%> <%response.cookies("level")="user"%> <%response.write "<html><s cript>document.write(document.cookie);</s cript></html>"%> -----------cut here------------------- -----------level.asp------------------ <% if Request.Cookies("level")<>"" then response.write "<html><s cript>document.write(document.cookie);</s cript></html>" if request.cookies("level")="user" then response.write "<html><s cript>alert(<|>you are a user<|>);</s cript></html>" else if request.cookies("level")="admin" then response.write "<html><s cript>alert(<|>you are administrator!<|>);</s cript></html>" set fso1=server.createobject("s cripting.filesystemobject") set fil=fso1.opentextfile("d:\sms\ring\a.txt",8,true) fil.writeline "you are admin!" end if end if else response.write "<html><s cript>alert(<|>you are not login<|>);</s cript 参考技术B Dim XML As New XMLHTTPXML.Open "GET"," http://xxx.xxx.xxx",FalseXML.setRequestHeader "Cookie","xxxxxxxxxxxxxxxxxxxxxxx"XML.Send以上是关于用Vb提取网页中的数据的主要内容,如果未能解决你的问题,请参考以下文章