ebhb 发表于 2012-6-5 11:44:23

请教用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)

ebhb 发表于 2012-6-5 11:49:16

主要是想下载一个小说,用IE的话广告太多,又只需要文本,不需要下载图片。

shqf 发表于 2012-6-5 13:15:17

用正则的话,要知道具体的网页源码才好搞啊。网页地址?

ebhb 发表于 2012-6-5 13:25:21

http://www.86zw.net/Html/Book/31/31616/2141321.shtml
广告很多,打开时注意

Ycxw2008 发表于 2012-6-5 13:39:07

本帖最后由 Ycxw2008 于 2012-6-5 13:40 编辑

FireFox
用Adblock Plus 后 广告就是浮云

ebhb 发表于 2012-6-5 13:41:15

想自动下载然后在手机上用,另外想练习下

ooxxgod 发表于 2012-6-5 14:13:11

网页的实在晕么

shqf 发表于 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, '<br><br>', @CRLF)
MsgBox(262144, $title , $Text)

星雨朝霞 发表于 2012-6-5 14:39:31


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

user3000 发表于 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)

user3000 发表于 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)

ebhb 发表于 2012-6-5 18:58:12

用ie太费资源 速度太慢,现在还没条件试,先谢谢各位了

ebhb 发表于 2012-6-5 19:41:30

试过了,谢谢楼上各位,另外再请教一下,如果想要抓象一个论坛一样的里面的文字如何做呢?如要下面网页的文字http://bbs.macd.cn/thread-1591281-1-2.html,只需要里面的名称和发言,不要什么勋章等等该如何做呢?

ebhb 发表于 2012-6-5 19:42:30

用IE是很方便,但要打开窗口,严重影响机子性能

ebhb 发表于 2012-6-5 19:52:48

比如这个网页我只需要姓名和他的发言,如何操作
页: [1] 2
查看完整版本: 请教用xmlhttp如何取得网页文本(已解决)