老榆头 发表于 2009-3-12 12:44:39

有关:网页提取链接、定时执行操作的问题求助

测试链接如下:
测试链接(如有乱码,请修改一下页面编码为“简体中文”)

我想实现:
从此页面中提取开始时间,然后定时,时间到了,就单击下面对应的链接

下面是代码,可能有许多需要修改的地方,麻烦帮忙看看



;#NoTrayIcon

#include <IE.au3>
#include <INet.au3>
#include <Date.au3>



Global $oIE
Global $starttime,$TimeNum,$getmoneylink
Dim $aStartTime,$aRedEnvelpeLinks


$url = "http://liuxingworld.com/wp-content/uploads/2009/test.html"

$oIE = _IECreate($url, "url", 1)


_IELoadWait($oIE)


$surl = _IEPropertyGet($oIE, "locationurl")
ConsoleWrite($surl & @CR)
;$sHTML = _IEBodyReadHTML ($oIE)
$sHTML = _INetGetSource($surl)

; get the start time

$aStartTime = StringRegExp($sHTML, "<li>开始时间 (.*?)</li>", 3)
$aRedEnvelpeLinks = StringRegExp($sHTML, '<li><b>&nbsp;<a href="(.*?)"><font', 3)
$TimeNum = UBound($aStartTime) - 1
ConsoleWrite($TimeNum & @CRLF)

For $i = 0 To UBound($aStartTime) - 1
        Dim $starttime                ; 开始时间
        Dim $link                        ; 链接URL
        $starttime = $aStartTime[$i]
        $link = $aRedEnvelpeLinks[$i]
        ConsoleWrite($starttime & @CRLF)
        ConsoleWrite($link & @CRLF)
       
Next

; #################################
; 就是这里不明白
; 该放在哪里,怎么做?

;AdlibEnable("checktime")
;While 1

;WEnd

; #################################

Sleep(2000) ;pause 2 seconds
_IEQuit($oIE)

Func checktime()
        Local $hour, $min, $sec, $timediff

        $timediff = _DateDiff('s', _NowCalc(), $starttime)
        ConsoleWrite($starttime & @CRLF)
        ;如果时间差<=30秒,则执行
        If $timediff <= 30 Then
                AdlibDisable()
                _IEAction($link, "click")
                ConsoleWrite($link & "--" & @error & @CRLF)
        EndIf       
EndFunc   ;==>checktime

bob 发表于 2009-3-12 13:25:17

有简便方法为什么不用了
在命令提示符中用AT命令,安排计划时间运行即可!

老榆头 发表于 2009-3-12 14:12:28

首先谢谢bob的回复。
原帖由 bob 于 2009-3-12 13:25 发表 http://www.autoitx.com/images/common/back.gif
有简便方法为什么不用了
在命令提示符中用AT命令,安排计划时间运行即可!

那我用windows的计划任务,应该也可以吧。

可是问题不在这里,我要从网页获取时间,然后再定时
如果页面上就一个时间,那我可以实现
可是如果有多个页面且每一个页面上有多个时间,我就不知道如何实现了

xrbenbeba 发表于 2009-3-12 14:46:37

做任务计划和AT都要有用户名和密码的限制。
如果有管理员权限可以用WMI的任务计划对象创建System的任务计划。这样就可以实现无论谁登陆这台机器都可以可视化的开始这个任务。

bob 发表于 2009-3-12 14:51:50

用正则获取时间,写到任务计划中

老榆头 发表于 2009-3-12 16:14:35

原帖由 bob 于 2009-3-12 14:51 发表 http://www.autoitx.com/images/common/back.gif
用正则获取时间,写到任务计划中

谢谢两位
时间我已经获取到了,就是如何写到任务计划中,不清楚,谢谢
页: [1]
查看完整版本: 有关:网页提取链接、定时执行操作的问题求助