vgy0dl 发表于 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)
;~         GUICtrlSetData($Label14,$array)
    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)
;~         GUICtrlSetData($Label14,$array)
    Next已经解决。。
不过还是不懂,为啥工具测试,或者单行能提取,,整个源码就提取不了

gzh888666 发表于 2011-11-12 04:27:09

身 份普通会员
                注册时间2011-10-31
                发帖纪录25
                  ( ...
vgy0dl 发表于 2011-11-12 02:51 http://www.autoitx.com/images/common/back.gif#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), '其中元素为: ' & $Test)
页: [1]
查看完整版本: 网页提取数据。正则,帮下忙【已解决】