qq123123 发表于 2011-4-16 06:58:51

如何用autoit 做 ie 准确点 翻页的(下一页)(已解决)

本帖最后由 qq123123 于 2011-4-19 19:10 编辑

如何用autoit 做Internet Explorer点下一页
比如下面这个网页,如何准确点击到 翻页 的 下一页

1 下一页 找到相关结果约100,000,000个

http://www.baidu.com/s?wd=%CF%C2%D2%BB%D2%B3&n=2

虽然这个也能点,但是定位不准确!容易点错!
_IELinkClickByText ($oIE, "下一页")

下面是图片!




qq123123 发表于 2011-4-16 15:14:27

第一次继续关注!

papapa314 发表于 2011-4-16 17:22:03

本帖最后由 papapa314 于 2011-4-16 17:45 编辑

回复 1# qq123123


这个简单,用直接打开网址的方法。
如果当前网址为:http://www.baidu.com/s?wd=%CF%C2%D2%BB%D2%B3&pn=10
那么,点击下一页后相当于网址变成:
http://www.baidu.com/s?wd=%CF%C2%D2%BB%D2%B3&pn=20

那么我们就可以这样写:

#include<IE.au3>
$oIE=_IEAttach("百度搜索_下一页")
if IsObj($oIE) then

   $url=$oIE.LocationURL

   $num=StringRegExp($url,"=(\d+?)$",3)

   $string=StringRegExp($url,"(.+=)\d+?$",3)

   $newurl=$string&String(Number($num+10))

_IENavigate($oIE,$newurl)

EndIf

papapa314 发表于 2011-4-16 17:43:58

本帖最后由 papapa314 于 2011-4-16 17:47 编辑

还有一种方法是:

$oIE=_IECreate("http://www.baidu.com/s?wd=%CF%C2%D2%BB%D2%B3&n=2",0,1,1)
$links=_IELinkGetCollection($oIE)

For $link In $links
        If $link.outertext="下一页" And StringInStr($link.href,"http://www.baidu.com/s?wd=") Then
                MsgBox(0,0,$link.href)
                _IENavigate($oIE,$link.href,1)
        EndIf
Next

qq123123 发表于 2011-4-16 19:14:06

回复 4# papapa314


    我自己想到了一种方法,就是可以点他的页数,比如 1 页2页 也可以运行,谢谢楼上大哥哥的指导
        $i = 0
While $i <= 75
   $sText = _IEBodyReadText($oIE)
   _IELinkClickByText ($oIE, "["&$i&"]")
   If Not StringInStr($sText, "["&$i&"]") Then
   EndIf
Sleep(1)
    $i = $i + 1
WEnd
页: [1]
查看完整版本: 如何用autoit 做 ie 准确点 翻页的(下一页)(已解决)