请教:
假如我现在已经获取了某网页所有内容,然后我想从中提取所有格式为 XXXX XXXX XXXX XXXX 的内容
假如我现在已经获取了某网页所有内容,然后我想从中提取所有格式为 XXXX XXXX XXXX XXXX 的内容
解决方案 »
- VB6如何遍历word文件的所有CustomDocumentProperties?
- 怎么样将LISTVIEW控件的内容按行保存到文本文件。
- 我有一段代码,大家看看,Me.MousePointer什么意思呢?初学,大家帮忙!多谢!(必给分)
- 在线等待!
- 问问 ,一个文本文件使用不同的文本编辑器出现的空行数不同的问题?
- VBA基础问题三:编写的按钮及窗体怎么在其他的文件中使用?应该怎么导出来呢?
- 学生成绩管理系统
- 如何导入excel文件成为一个SQL表
- 老大们,请火速恢复俺这个问题,怎样求在一定日期内的金额总和啊??以下是我的代码,急!急!谢谢
- 程序如何知道自已的INI文件放在什么地方???
- 画线时,鼠标后面跟一根线是怎么实现的?
- VB 删除一个信号
但里面方法还是可以参考的。
VB源码:通过XML读取网页内容并分析取得需要的数据
http://download.csdn.net/source/639058
新建了一个测试的HTML页,内容如下
<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 NNME
wwww dddd ssss xxxx
qqqq ssss qqqq cccc</P>
<p>机的收购的十分大方上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567</P>
<p>实得分乐撒娇的快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567</P>
<p>饿啊饿快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567 第一次</P>用 For Each i In doc.getelementsbytagname("p")
Text1.Text = Text1.Text & " " & i.innertext
将p标签里的内容放到TEXTBOX里面,照理HTML里面只有三段,但是textbox里面显示的重复了好几次,类似于显示的是
机的收购的十分大方上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567
实得分乐撒娇的快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567
饿啊饿快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567 第一次机的收购的十分大方上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567
实得分乐撒娇的快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567
饿啊饿快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567 第一次机的收购的十分大方上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567
实得分乐撒娇的快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567
饿啊饿快乐飞机上看的了积分卡洛杉矶的开放了就是快乐地方 UUXX SDFG WWWX NNME 1234567 第一次重复了3次,求大侠分析下为什么?
用For Each i In doc.getelementsbytagname("p")
Text1.Text = Text1.Text & " " & i.innertext
获取网页中p标签中的内容,测试网页中有三个<p></p>,为什么textbox中显示的是三次重复的这三个<p></p>之间的内容?
新建了一个测试的HTML页,内容如下
<!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 NNME
wwww dddd ssss xxxx
qqqq 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 mijing
'如果取全部P标签
'For Each mijing In doc.getElementsByTagName("P")
'取后三个
For Each mijing In doc.getElementById("aaa").getElementsByTagName("P")
Text1.Text = Text1.Text & " " & i.innerText
Next
---------->>>
Text1.Text = Text1.Text & " " & mijing.innerText
不过为什么有了这句会重复呢?
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 SubPrivate 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 SubPrivate 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
Set doc = WebBrowser1.Document
For Each i In doc.getelementsbytagname("p")
Text1.Text = Text1.Text & "" & i.innertext Next
百度了一下,如果网页中含有框架网页,每个框架网页都有可能触发WebBrowser1_DocumentComplete事件现在换方法了,改用XMLHTTP
Function GetBodyTxt(url) '获取指定网页文本
On Error Resume Next
Dim HTMLDoc As Object
Dim GetBdoy As String
Set HTMLDoc = CreateObject("htmlfile")
Set XmlObject = CreateObject("Microsoft.XMLHTTP")
XmlObject.Open "Get", url, False, "", ""
XmlObject.Send
GetBody = XmlObject.responseText
HTMLDoc.body.innerHTML = GetBody
GetBodyTxt = HTMLDoc.body.innerText
End Function感谢各位的热心帮助
论坛签名======================================================================
当您的问题得到解答后请及时结贴.
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html如何给分和结贴?
http://community.csdn.net/Help/HelpCenter.htm#结帖如何给自己的回帖中也加上签名?
http://blog.csdn.net/q107770540/archive/2011/03/15/6250007.aspx如何给自己安装一双火眼金睛?
http://blog.csdn.net/sysdzw/archive/2011/04/07/6306619.aspx