lotsunhim 发表于 2010-9-27 20:49:32

如何查找到网页中某一行文字里其中一部分的字符呢?[已解决]

本帖最后由 lotsunhim 于 2010-9-30 18:44 编辑

#include <IE.au3>
$oIE = _IECreate("http://www.autoitx.com/forum-4-1.html")

$sMyString = "规范发帖"
$oLinks = _IELinkGetCollection($oIE)
For $oLink in $oLinks
      $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
                _IEAction($oLink, "click")
                ExitLoop
      EndIf
Next
现在想增加一个操作,查找网页中的内容,例如贴子第一句“论坛自改版及整顿以来,发帖规范了许多,让大家获得了更为准确的资料及良好的论坛秩序,”
然后得到当面这一行后边所有的“这是有目共睹的。”这一句字符,关于字符操作不清楚,望大家指点一下啊。

auhj887 发表于 2010-9-27 21:32:44

学习。。。。。。。。

Ziya 发表于 2010-9-28 09:39:03

#include <ie.au3>
$oIE = _IECreate('http://www.autoitx.com/thread-18544-1-1.html',0,0)
$oText = _IEBodyReadText($oIE)
FileWrite("temp.txt",$oText)
_IEQuit($oIE)
$str = FileReadLine("temp.txt",16)
FileDelete('temp.txt')
MsgBox(0,"",$str){:face (303):}

shenrenba 发表于 2010-9-28 10:06:12

#include <Array.au3>
#include <INet.au3>
$Source = _INetGetSource('http://www.autoitx.com/thread-18544-1-1.html')
$SR=StringRegExp($Source,'.+\>([^\s|\w]?.+)\。',3)
_ArrayDisplay($SR,"")
MsgBox(0,"",$SR)

lotsunhim 发表于 2010-9-28 11:51:11

要根据前面“论坛自改版及整顿以来,发帖规范了许多,让大家获得了更为准确的资料及良好的论坛秩序,”得到“这是有目共睹的。”StringRegExp应该怎么匹配呢,你给的代码只得到“论坛自改版及整顿以来,发帖规范了许多,让大家获得了更为准确的资料及良好的论坛秩序,这是有目共睹的。”前面这句关键词是固定的,后面的这句“这是有目共睹的。”非固定,有时是“这是有目共睹。”或是“是有目共睹的。”,怎么准确地得到后边可能非固定的文字呢。

afan 发表于 2010-9-28 12:53:01

试试~#include <INet.au3>
$Source = _INetGetSource('http://www.autoitx.com/thread-18544-1-1.html')
$key = '论坛自改版及整顿以来,发帖规范了许多,让大家获得了更为准确的资料及良好的论坛秩序,'
$str = StringRegExpReplace($Source, '(?s).+' & $key & '(.*?)(?=\<br />).+', '$1')
MsgBox(0, '', '"' & $str & '"')

lotsunhim 发表于 2010-9-28 13:31:33

本帖最后由 lotsunhim 于 2010-9-28 14:08 编辑

试试~
afan 发表于 2010-9-28 12:53 http://www.autoitx.com/images/common/back.gif


    可以了,感谢啦!补充问一下,怎么根据链接文字得到URL地址啊?例如根据“提问交流”得到"http://www.autoitx.com/forum-4-1.html"这个链接呢?
页: [1]
查看完整版本: 如何查找到网页中某一行文字里其中一部分的字符呢?[已解决]