请教用xmlhttp如何取得网页文本(已解决)
本帖最后由 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) 主要是想下载一个小说,用IE的话广告太多,又只需要文本,不需要下载图片。 用正则的话,要知道具体的网页源码才好搞啊。网页地址? http://www.86zw.net/Html/Book/31/31616/2141321.shtml
广告很多,打开时注意 本帖最后由 Ycxw2008 于 2012-6-5 13:40 编辑
FireFox
用Adblock Plus 后 广告就是浮云
想自动下载然后在手机上用,另外想练习下 网页的实在晕么 #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, '<br><br>', @CRLF)
MsgBox(262144, $title , $Text)
FF的ADP下广告弹窗什么的都是浮云! 本帖最后由 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) 回复 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) 用ie太费资源 速度太慢,现在还没条件试,先谢谢各位了 试过了,谢谢楼上各位,另外再请教一下,如果想要抓象一个论坛一样的里面的文字如何做呢?如要下面网页的文字http://bbs.macd.cn/thread-1591281-1-2.html,只需要里面的名称和发言,不要什么勋章等等该如何做呢? 用IE是很方便,但要打开窗口,严重影响机子性能 比如这个网页我只需要姓名和他的发言,如何操作
页:
[1]
2