VB 网页数据提取
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB 网页数据提取相关的知识,希望对你有一定的参考价值。
我用WebBrowser打开一个网页 代码如下 我下提取两处星号地方的数据保存在TEXT1里 然后再打开同样格式的网页取得相同的数据换行保存到TEXT1里 如何做
<div class="vspace clear"></div>
<div class="gridwrap">
<table class="grid fixed">
<thead>
<th width="140"><span class="bold">订单内容</span></th>
<th></th>
</thead>
<tr>
<td>订单时间:</td>
<td>2013-6-28 1:16</td>
</tr>
<tr>
<td>系统订单号:</td>
<td>1126413062802321125</td>
</tr>
<tr>
<td>分区:</td>
<td>*********
<span class="simsun"> </span>
<a id="msgEntry" href="#" class="green underline"></a></td>
</tr>
<tr>
<td>分区网络状态:</td>
<td><span class='red'>span></td>
</tr>
<tr>
<td>玩家:</td>
<td><span class="red big bold">**********</span></td>
</tr>
<tr>
<td>订单金额:</td>
<td><span class="big bold">30.00</span> 元</td>
Private Sub Command1_Click()
Dim myMatch As Object
Dim myMatches As Object
Dim myRegExp As Object
Set myRegExp = CreateObject("VBScript.RegExp")
Dim strhtml As String
strHtml = WebBrowser1.Document.documentelement.outerhtml '获取网页源代码
myRegExp.IgnoreCase = True
myRegExp.Global = True
myRegExp.Pattern = "<ul class=[""']?list[""']?>[\\s\\S]*?<p>(.+?)</p>[\\s\\S]*?<p>(.+?)</p>[\\s\\S]*?<p>(.+?)</p>[\\s\\S]*?<p>(.+?)</p>[\\s\\S]*?<p>(.+?)</p>[\\s\\S]*?<p>(.+?)</p>[\\s\\S]*?<p>(.+?)</p>[\\s\\S]*?</ul>"
Set myMatches = myRegExp.Execute(strHtml)
Dim s As String
For Each myMatch In myMatches
'提取的数据之间用TAB键(vbTab)进行了分隔,行与行之间使用了回车(vbCrLf)进行分隔
s = s & myMatch.SubMatches(0) & vbTab '类似:032611314908
s = s & myMatch.SubMatches(1) & vbTab '类似:3天前
s = s & myMatch.SubMatches(2) & vbTab '类似:2010-3-26 14:05
s = s & myMatch.SubMatches(3) & vbTab '类似:李晓繁
s = s & RemoveTags(myMatch.SubMatches(4)) & vbTab '类似:20元
s = s & myMatch.SubMatches(5) & vbTab '类似:数量1
s = s & GetLink(unHtmlEntities(myMatch.SubMatches(6))) '类似:xiangxixinnxi.asp?chuli=goto&numbs=032611314908
s = s & vbCrLf
Next
Text1.Text = s
End Sub
'[还原特殊的HTML编码的函数]
Function unHtmlEntities(ByVal strHtml As String) As String
Dim s As String
s = strHtml
s = Replace$(s, "&", "&")
s = Replace$(s, "<", "<")
s = Replace$(s, ">", ">")
s = Replace$(s, """, """")
s = Replace$(s, "'", "'")
unHtmlEntities = s
End Function
'[移除HTML标签的函数]
Function RemoveTags(ByVal strHtml As String) As String
Dim myRegExp As Object
Set myRegExp = CreateObject("VBScript.RegExp")
myRegExp.IgnoreCase = True
myRegExp.Global = True
myRegExp.Pattern = "<.+?>"
RemoveTags = myRegExp.Replace(strHtml, "")
End Function
'[获取onclick事件中的链接地址的函数]
Function GetLink(ByVal strHtml As String) As String
Dim myMatch As Object
Dim myMatches As Object
Dim myRegExp As Object
Set myRegExp = CreateObject("VBScript.RegExp")
myRegExp.IgnoreCase = True
myRegExp.Pattern = "\\('(.+?)'\\)"
Set myMatches = myRegExp.Execute(strHtml)
GetLink = myMatches(0).SubMatches(0)
End Function追问
这个代码我也找了 不会正则 改不了 别复制别人的好吗?
追答呵呵,丢人了!我要加强学习了!
追问对于你的热情还是表示感谢的 如果能百度到我就不会来问了 我刚接触VB
追答http://zhidao.baidu.com/question/144858089.html
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 网页数据提取的主要内容,如果未能解决你的问题,请参考以下文章