找回密码
 加入
搜索
查看: 1662|回复: 1

[AU3基础] 网页提取数据。正则,帮下忙【已解决】

[复制链接]
发表于 2011-11-12 02:51:42 | 显示全部楼层 |阅读模式
本帖最后由 vgy0dl 于 2011-11-12 04:10 编辑

<li><strong>身 份</strong><span id="lbRoleMemo">普通会员</span></li>
                <li><strong>注册时间</strong><span id="lbRegDatetime">2011-10-31</span></li>
                <li><strong>发帖纪录</strong><span id="lbTotalMessageCount">25</span>
                    (主贴<span id="lbRootMessageCount">20</span>) </li>
                <li><strong>邮 箱</strong><span id="lbEmail">75742451@qq.com</span></li>

目的提取那个发帖记录的数目
用这个表达式。。id="lbTotalMessageCount">(.*)</span>。。单行的可以提取出来。。
全部源码放在那个正则表达式测试工具4.0.也正常。。
可是。放到AU3里,就提不出来,
#include <IE.au3>        
$Url2 = "http://qlww.miniban.cn/Front/User/UserInfo.aspx?UserID=4607&GBID=2236"
    $oIE2 = _IECreate($Url2, 0, 0)
    $sHTML2 = _IEBodyReadHTML($oIE2)
;~          msgbox(0, "读取到的字符 ",$sHTML2)
    $array = StringRegExp($sHTML2, '<span id="lbTotalMessageCount">(.*)</span>', 3)        
    for $i = 0 to UBound($array) - 1
        MsgBox(0,'',$array[0])
;~         GUICtrlSetData($Label14,$array[0])
    Next
这是为什么呢?知道的大虾们。帮下忙哈,谢谢了
#include <IE.au3>
#include <INet.au3>        
;~         
;~         _INetGetSource"http://qlww.miniban.cn/Front/User/UserInfo.aspx?UserID=4607&GBID=2236"
;~     $oIE2 = _IECreate($Url2, 0, 0)
    $sHTML2 = _INetGetSource("http://qlww.miniban.cn/Front/User/UserInfo.aspx?UserID=4607&GBID=2236")
         msgbox(0, "读取到的字符 ",$sHTML2)
    $array = StringRegExp($sHTML2, '<(?i)span id="lbTotalMessageCount">(.+?)</(?i)span>', 3)        
    for $i = 0 to UBound($array) - 1
                MsgBox(0,'',$array[0])
;~         GUICtrlSetData($Label14,$array[0])
    Next
已经解决。。
不过还是不懂,为啥工具测试,或者单行能提取,,整个源码就提取不了
发表于 2011-11-12 04:27:09 | 显示全部楼层
身 份普通会员
                注册时间2011-10-31
                发帖纪录25
                    ( ...
vgy0dl 发表于 2011-11-12 02:51
#include <IE.au3>        
$Url2 = "http://qlww.miniban.cn/Front/User/UserInfo.aspx?UserID=4607&GBID=2236"
    $oIE2 = _IECreate($Url2, 0, 0)
    $Str = _IEBodyReadHTML($oIE2)
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '(?i)lbTotalMessageCount>(\d+)', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($Test), '其中[0]元素为: ' & $Test[0])
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-1 09:33 , Processed in 0.086600 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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