首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么提取网页中固定格式的内容

2012-01-18 
如何提取网页中固定格式的内容?请教:假如我现在已经获取了某网页所有内容,然后我想从中提取所有格式为XXXX

如何提取网页中固定格式的内容?
请教:
  假如我现在已经获取了某网页所有内容,然后我想从中提取所有格式为 XXXX XXXX XXXX XXXX 的内容

[解决办法]
看看我资源的这个范例吧,虽然原来的网页更换了,程序不能正常使用,
但里面方法还是可以参考的。
VB源码:通过XML读取网页内容并分析取得需要的数据
http://download.csdn.net/source/639058
[解决办法]

探讨
请教:
假如我现在已经获取了某网页所有内容,然后我想从中提取所有格式为 XXXX XXXX XXXX XXXX 的内容

[解决办法]
多快好省用正则,没的说
[解决办法]
你的页面里有5个P标签啊?取后三个?
新建了一个测试的HTML页,内容如下
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>测试</title></head><body><iframe application="yes" width=700 height=600 src="http://www.baidu.com" mce_src="http://www.baidu.com"></iframe><P>阿萨德看了就弗拉是恐惧的房间卡上的会计法快乐撒娇的快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567</P><P>ssadfsdfafsdf卡上的会计法快乐撒娇的快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNMEwwww dddd ssss xxxxqqqq ssss qqqq cccc</P><div id=aaa>  <P>机的收购的十分大方上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567</P>  <P>实得分乐撒娇的快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567</P>  <P>饿啊饿快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567 第一次</P></div></html>
[解决办法]
这是我昨天做的....和你说的差不多,,,不知道需要吗??? 我写的有点不好,,你仔细看看吧


 
Dim baidu As String
Dim Pc As Integer
Private Sub Command1_Click() ',获取搜索结果10条
If Pc <> 0 Then '判断是否按了Command2
List1.Clear
Dim Gettable As Object
Dim Obj As Object
Dim Gettable2: Dim Gettable3
Dim Idname
 Set Gettable = WebBrowser1.Document.getelementsbytagname("table") '返回所有table对象
Dim i As Integer '声明计数器变量
For i = 0 To Gettable.length - 1 '对象的集合不好用Len()函数返回
Idname = Gettable.Item(i).Id '得到一个ID值
If Idname <> "" Then '如果id值不等于空
Set Gettable2 = Gettable.Item(i).getelementsbytagname("td") '从table对象集合返回td对象
Set Gettable3 = Gettable2.Item(0).getelementsbytagname("A") '返回为A的超链接对象
List1.AddItem Idname & " " & Gettable3(0).innertext & Gettable3(0).href 'href是超链接的URL
End If
Next '结束循环
 End If
End Sub

Private Sub Command2_Click() '主要测试输入的,哈哈
 Pc = 0
baidu = InputBox("输入关键字", "")
baidu = "http://www.baidu.com/s?wd=" & baidu '链接输入的关键字
WebBrowser1.Navigate baidu '执行触发WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) 事件
End Sub
Private Sub Command3_Click() '测试Command3
Pc = 1
End Sub
Private Sub Command4_Click()
 Dim k As Integer
 Dim URL
 Dim Pend As String
 Dim StrUrl
For k = 0 To List1.ListCount - 1 '返回list1项目数量,做循环
URL = InStr(List1.List(k), "http://")
StrUrl = List1.List(k) '好像多余了,呵呵
While Mid(StrUrl, URL, 1) <> "" '这应该可以看懂吧?
Form2.Text1.Text = Form2.Text1.Text & Mid(List1.List(k), URL, 1)
URL = URL + 1
Wend
Next k
Call Form2.Show
End Sub

Private Sub Form_Load()
Command2.Caption = "输入关键字"
WebBrowser1.Navigate "http://www.baidu.com/s?wd=%B1%F9%D3%F2%BD%A3%BF%CD"


End Sub
Private Sub List1_DblClick()
MsgBox List1.List(List1.ListIndex), vbInformation, "提示"
End Sub

 '很不错的取法
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) '这个事件主要用来查找 找到相关结果约 是几个的
 Dim Tempcode '变量为变体型
Tempcode = WebBrowser1.Document.body.innerHTML 'innerHTML 与outerHTML 相差不是很多
Dim Pstart, Pend As Integer '声明两个整形变量
Pstart = InStr(Tempcode, "找到相关结果约")
Pstart = Pstart + 7 '变量加上7 从约字开始取值
Pend = Pstart '两者相同
While Mid(Tempcode, Pend, 1) <> "个" '当取一个不等于个字的时候 Pend + 1 在继续取值
Pend = Pend + 1
Wend
Label1.Caption = "找到相关结果约 " & Mid(Tempcode, Pstart, Pend - Pstart + 1) '最终获得结果
End Sub

热点排行