如何用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, "下一页")
下面是图片!
第一次继续关注! 本帖最后由 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: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
回复 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]