- #Include <IE.Au3>
- Opt("ExpandEnvStrings", 1)
- If FileExists("%Temp%\Verify.jpg") Then FileDelete("%Temp%\Verify.jpg")
- ;http://blog.sina.com.cn/s/blog_49aaa3430100cep9.html
- Global $Ie = _IECreate("Http://blog.sina.com.cn/shuchang", 0, 0, 1)
- ;===================Get New Link.=================
- $Links = _IELinkGetCollection($Ie)
- $Suffix = "^http://blog.sina.com.cn/s/blog_49aaa(?i)[a-z0-9]+\.html$"
- For $ele In $Links
- $CorrectLink = StringRegExp($ele.href, $Suffix, 1)
- If IsArray($CorrectLink) Then
- $Flag1 = 1
- ExitLoop
- EndIf
- Next
- If Not IsDeclared("Flag1") Then
- _IEQuit($Ie)
- MsgBox(16, "Error:", "出错了!~~~")
- Exit(-1)
- ElseIf Not FileExists("s.x") Then
- _IEQuit($Ie)
- FileWrite("s.x", $CorrectLink[0])
- Exit(0)
- ElseIf FileRead("s.x") <> $CorrectLink[0] Then
- _GetVerifyImg($CorrectLink[0])
- Else
- Exit(0)
- EndIf
- ;===================Get New Link.=================
- ;================Get Verifier Image=================
- Func _GetVerifyImg($Link)
- _IENavigate($Ie, $Link)
- _IELoadwait($Ie)
- _IEAction($Ie, "visible")
- $Images = _IEImgGetCollection($Ie)
- $CheckWd = "^(?i)Http://vlogin.blog.sina.com.cn/myblog/checkwd_image.php$"
- For $ele In $Images
- $Error = StringRegExp($ele.src, $CheckWd, 0)
- If $Error = 1 Then
- $Flag2 = 1
- InetGet($ele.src, @TempDir & "\Verify.jpg")
- Run("%ComSpec% /c start %Temp%\Verify.jpg", "", @SW_HIDE)
- ExitLoop
- EndIf
- Next
- If Not IsDeclared("Flag2") Then
- MsgBox(16, "Error:", "没有获取到验证码。")
- Exit(-2)
- EndIf
- _Post()
- FileDelete(@TempDir & "\Verify.jpg")
- EndFunc ;==> End GetVerifyImg().
- ;================Get Verifier Image=================
- ;======================Post=======================
- Func _Post() ;Post
- $Name = _IEGetObjByID($Ie, "login_name")
- _IEPropertySet($Name, "InnerText", "pusofalse@sina.com")
- $Pass = _IEGetObjByID($Ie, "login_pass")
- _IEPropertySet($Pass, "InnerText", "purification")
- $CommentArea = _IEGetObjByID($Ie, "CommentArea")
- _IEPropertySet($CommentArea, "InnerText", "Happy!!!")
- WinWait("Verify.jpg")
- $VerifyCode = InputBox("Verify", "输入验证码:", "", "", "", "", 100, 200)
- If Not $VerifyCode Then Exit(-1)
- $Verify = _IEGetObjByID($Ie, "login_check")
- _IEPropertySet($Verify, "InnerText", $VerifyCode)
- $Submit = _IEGetObjByID($Ie, "comment_post_btn")
- _IEAction($Submit, "click")
- EndFunc ;==> End _Post().
- ;======================Post=======================
复制代码 遇到了同样的问题,虽能获取到验证码,但成功率不高,50%左右吧。
测试程序在我的网盘里。
[ 本帖最后由 pusofalse 于 2008-11-25 00:54 编辑 ] |