vb使用xmlhttp获取网页源码怎么用正则表达式过滤和提取标签内的连接?
我可以简单的使用xmlhttp获取网页源码,但是正则表达式只是刚入门不是很懂。网页代码能看懂,但是用VB不知道怎么表达。。现在问题如下:1:如果地址链接有页数,我怎么获取...
我可以简单的使用xmlhttp获取网页源码,但是正则表达式只是刚入门不是很懂。
网页代码能看懂,但是用VB不知道怎么表达。。
现在问题如下:
1:如果地址链接有页数,我怎么获取第二页第三页等等内容??
已知地址链接规则是这样p/***pn=*。
2:怎么提取指定标签内的imgclass="BDE_Image" src="链接?
以下是网页的源码:连接的页数
<liclass="l_pager pager_theme_2"><spanclass="tP">1</span><ahref="/p/1798752970?pn=2">2</a><ahref="/p/1798752970?pn=3">3</a><ahref="/p/1798752970?pn=4">4</a><ahref="/p/1798752970?pn=5">5</a><ahref="/p/1798752970?pn=6">6</a><ahref="/p/1798752970?pn=7">7</a><ahref="/p/1798752970?pn=8">8</a><ahref="/p/1798752970?pn=9">9</a><ahref="/p/1798752970?pn=10">10</a><ahref="/p/1798752970?pn=2">下一页</a><ahref="/p/1798752970?pn=57">尾页</a></li>
以下是标签内的需要提取的连接:
<cc><divid="post_content_23213876695" class="d_post_content">
imgclass="BDE_Image" src="这里是图片的连接地址" width="560" height="396" changedsize="true"><br><br><br><br></div></cc><br/> 展开
网页代码能看懂,但是用VB不知道怎么表达。。
现在问题如下:
1:如果地址链接有页数,我怎么获取第二页第三页等等内容??
已知地址链接规则是这样p/***pn=*。
2:怎么提取指定标签内的imgclass="BDE_Image" src="链接?
以下是网页的源码:连接的页数
<liclass="l_pager pager_theme_2"><spanclass="tP">1</span><ahref="/p/1798752970?pn=2">2</a><ahref="/p/1798752970?pn=3">3</a><ahref="/p/1798752970?pn=4">4</a><ahref="/p/1798752970?pn=5">5</a><ahref="/p/1798752970?pn=6">6</a><ahref="/p/1798752970?pn=7">7</a><ahref="/p/1798752970?pn=8">8</a><ahref="/p/1798752970?pn=9">9</a><ahref="/p/1798752970?pn=10">10</a><ahref="/p/1798752970?pn=2">下一页</a><ahref="/p/1798752970?pn=57">尾页</a></li>
以下是标签内的需要提取的连接:
<cc><divid="post_content_23213876695" class="d_post_content">
imgclass="BDE_Image" src="这里是图片的连接地址" width="560" height="396" changedsize="true"><br><br><br><br></div></cc><br/> 展开
2个回答
展开全部
这个问题挺好解决,这里贴代码太多,加QQ 620941帮你 提取字符给你写个函数,不用正则
Function stxtRow(ByVal sStr As String, ByVal nRow As Long, Optional ByVal sP1 As String = vbCrLf, Optional ByVal sP2 As String = vbCrLf) As String
Dim x As Long '循环用
Dim nPoint1 As Long '保存第一个关键点
Dim nPoint2 As Long '保存第二个关键点
Dim tnRow As Long '保存默认情况时的 寻找位置号
Dim isDef As Boolean
If sP1 = sP2 Then isDef = True Else isDef = False
For x = 1 To nRow
nPoint1 = InStr(nPoint1 + 1, sStr, sP1)
nPoint2 = InStr(nPoint1 + Len(sP1), sStr, sP2)
'Debug.Print nPoint1, nPoint2
If isDef Then tnRow = nRow - 1 Else tnRow = nRow
If isDef And nPoint2 = 0 And sP2 = vbCrLf Then nPoint2 = Len(sStr) + Len(sP1)
If nPoint1 = 0 Or nPoint2 = 0 Then
If isDef Then
stxtRow = "": Exit Function
'stxtRow = "没有找到,文件共" & x & "行": Exit Function
Else
stxtRow = "": Exit Function
'stxtRow = "没有找到,文件共" & x - 1 & "行": Exit Function
End If
End If
If nRow = 1 And isDef And sP2 = vbCrLf Then '如果默认搜头一行
stxtRow = Mid(sStr, 1, nPoint1 - 1)
Exit Function
Else '其他情况
If x = tnRow Then
stxtRow = Mid(sStr, nPoint1 + Len(sP1), nPoint2 - nPoint1 - Len(sP1))
Exit Function
End If
End If
Next
End Function
比如字符串s="ksdjfkls我slkjfsd说sdfsdf" 你要提取我说中间的
stxtRow s,1,"我","说"
这是提取s中 我开头 说结尾的第一个字符串,代码写的乱但肯定能用
Function stxtRow(ByVal sStr As String, ByVal nRow As Long, Optional ByVal sP1 As String = vbCrLf, Optional ByVal sP2 As String = vbCrLf) As String
Dim x As Long '循环用
Dim nPoint1 As Long '保存第一个关键点
Dim nPoint2 As Long '保存第二个关键点
Dim tnRow As Long '保存默认情况时的 寻找位置号
Dim isDef As Boolean
If sP1 = sP2 Then isDef = True Else isDef = False
For x = 1 To nRow
nPoint1 = InStr(nPoint1 + 1, sStr, sP1)
nPoint2 = InStr(nPoint1 + Len(sP1), sStr, sP2)
'Debug.Print nPoint1, nPoint2
If isDef Then tnRow = nRow - 1 Else tnRow = nRow
If isDef And nPoint2 = 0 And sP2 = vbCrLf Then nPoint2 = Len(sStr) + Len(sP1)
If nPoint1 = 0 Or nPoint2 = 0 Then
If isDef Then
stxtRow = "": Exit Function
'stxtRow = "没有找到,文件共" & x & "行": Exit Function
Else
stxtRow = "": Exit Function
'stxtRow = "没有找到,文件共" & x - 1 & "行": Exit Function
End If
End If
If nRow = 1 And isDef And sP2 = vbCrLf Then '如果默认搜头一行
stxtRow = Mid(sStr, 1, nPoint1 - 1)
Exit Function
Else '其他情况
If x = tnRow Then
stxtRow = Mid(sStr, nPoint1 + Len(sP1), nPoint2 - nPoint1 - Len(sP1))
Exit Function
End If
End If
Next
End Function
比如字符串s="ksdjfkls我slkjfsd说sdfsdf" 你要提取我说中间的
stxtRow s,1,"我","说"
这是提取s中 我开头 说结尾的第一个字符串,代码写的乱但肯定能用
追问
你好,已经加你QQ了,你上面的写代码我保存着,对我初学者有帮助。
2012-10-28
展开全部
http://hi.baidu.com/set2get/item/a1e37ec25366027ccfd4f8c8
加强版VB正则表达式(VBScript.RegExp)组件,兼容Perl正则语法
如正则不明白 请留下在线联系方式
加强版VB正则表达式(VBScript.RegExp)组件,兼容Perl正则语法
如正则不明白 请留下在线联系方式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询