找回密码
 加入
搜索
查看: 10707|回复: 17

[IE类操作] 请教用xmlhttp如何取得网页文本(已解决)

  [复制链接]
发表于 2012-6-5 11:44:23 | 显示全部楼层 |阅读模式
本帖最后由 ebhb 于 2012-6-5 21:22 编辑

现在用xmlhttp取得了网页全部代码,包括网页代码,现在想只取里面的文本,不知道用正则行不行,或者xmlhttp本身有这功能没有。
$sUrl = 'http://www.sohu.com'
$oHTTP = ObjCreate('microsoft.xmlhttp')
$oHTTP.Open('get', $sUrl, False)
$oHTTP.Send("")
$sText = BinaryToString($oHTTP.responseBody)
MsgBox(0,'', $sText)
 楼主| 发表于 2012-6-5 11:49:16 | 显示全部楼层
主要是想下载一个小说,用IE的话广告太多,又只需要文本,不需要下载图片。
发表于 2012-6-5 13:15:17 | 显示全部楼层
用正则的话,要知道具体的网页源码才好搞啊。网页地址?
 楼主| 发表于 2012-6-5 13:25:21 | 显示全部楼层
http://www.86zw.net/Html/Book/31/31616/2141321.shtml
广告很多,打开时注意
发表于 2012-6-5 13:39:07 | 显示全部楼层
本帖最后由 Ycxw2008 于 2012-6-5 13:40 编辑

FireFox
用Adblock Plus 后 广告就是浮云

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2012-6-5 13:41:15 | 显示全部楼层
想自动下载然后在手机上用,另外想练习下

评分

参与人数 1金钱 +10 收起 理由
星雨朝霞 + 10 我很赞同

查看全部评分

发表于 2012-6-5 14:13:11 | 显示全部楼层
网页的实在晕么
发表于 2012-6-5 14:19:56 | 显示全部楼层
#include <INet.au3>
Local $url = 'http://www.86zw.net/Html/Book/31/31616/2141321.shtml'
Local $str = _INetGetSource($url)
$title = StringRegExp($str,'<title>(.+)</title>',3)
$bookText = StringRegExp($str, '<div id="BookText"><br />(.+?)新书求推荐票', 3)
$Text = StringRegExpReplace($bookText[0], '<br><br>', @CRLF)
MsgBox(262144, $title[0] , $Text)
发表于 2012-6-5 14:39:31 | 显示全部楼层

FF的ADP下广告弹窗什么的都是浮云!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-6-5 15:10:43 | 显示全部楼层
本帖最后由 user3000 于 2012-6-5 16:11 编辑

回复 1# ebhb

$sUrl = 'http://www.86zw.net/Html/Book/31/31616/2141321.shtml'
$oHTTP = ObjCreate('microsoft.xmlhttp')
$oHTTP.Open('get', $sUrl, False)
$oHTTP.Send("")
$sText = BinaryToString($oHTTP.responseBody)
$title = StringRegExpReplace($sText, '(?is).+id="TextTitle"[^<>]*>\h*<[^<>]+>([^<>]+)</span>.+', '\1')
$text = StringRegExpReplace($sText, '(?is).+id="BookText"[^<>]*>\h*<[^<>]+>(.+?)</div>.+', '\1')
$text = StringRegExpReplace($Text, '(?i)<br>', @CRLF)
MsgBox(0,$title, $Text)
发表于 2012-6-5 18:11:39 | 显示全部楼层
回复 1# ebhb
直接用 Ie 对象及属性获取相应内容, 此方法不需要处理数据!
#include <ie.au3>
$sUrl = 'http://www.86zw.net/Html/Book/31/31616/2141321.shtml'
$oie = _IECreate($sUrl, 0, 0, 0)
Sleep(2000) ; AU3 版本问题, 延迟等待下!
$Title_id = _IEGetObjById($oie, 'TextTitle')
$Book_id = _IEGetObjById($oie, 'BookText')
MsgBox(0, $Title_id.innertext, $Book_id.innertext)
_IEQuit($oie)
 楼主| 发表于 2012-6-5 18:58:12 | 显示全部楼层
用ie太费资源 速度太慢,现在还没条件试,先谢谢各位了
 楼主| 发表于 2012-6-5 19:41:30 | 显示全部楼层
试过了,谢谢楼上各位,另外再请教一下,如果想要抓象一个论坛一样的里面的文字如何做呢?如要下面网页的文字http://bbs.macd.cn/thread-1591281-1-2.html,只需要里面的名称和发言,不要什么勋章等等该如何做呢?
 楼主| 发表于 2012-6-5 19:42:30 | 显示全部楼层
用IE是很方便,但要打开窗口,严重影响机子性能
 楼主| 发表于 2012-6-5 19:52:48 | 显示全部楼层
比如这个网页我只需要姓名和他的发言,如何操作
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 05:35 , Processed in 0.100739 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表