想做一个 网站自动登入查询...有验证码 怎么处理??
本帖最后由 kk_lee69 于 2023-4-26 13:49 编辑想做一个 网站自动登入查询
https://member.cht.com.tw/HiReg/ ... 72a5a11ca74dbd9c3c&
但是有验证码 就不知道要怎么处理了…..
有这方面的范例 可以参考的吗??
還是 可以從聲音下手
能夠 WAVE TO TXT變成文字??
使用cookie, 或内嵌IE 帮顶,我也想知道,很多自动操作都卡在验证码了。。 如果没有背景干扰,可以用OCR试试,若有背景干扰的就不好使了。 AU3应用GdiPlus预处理和识别验证码函数详解 https://www.autoitx.com/forum.php?mod=viewthread&tid=20741&fromuid=7670150 (出处: AUTOIT CN) krznz 发表于 2023-4-25 20:37
AU3应用GdiPlus预处理和识别验证码函数详解 https://www.autoitx.com/forum.php?mod=viewthread&tid=20741& ...
這個網站 可以聲音驗證 可以從聲音驗證下手 轉成數字嗎?? 你这种验证码自己搭建训练下应该没问题,通用模型测试识别结果如下
测试:https://www.autoitx.com/thread-73234-1-1.html
训练模型:https://github.com/sml2h3/dddd_trainer
部署模型:https://github.com/sml2h3/ocr_api_server
本帖最后由 kk_lee69 于 2023-4-27 11:35 编辑
繁星 发表于 2023-4-27 00:03
你这种验证码自己搭建训练下应该没问题,通用模型测试识别结果如下
能夠請教一下怎麼應用嗎??
我所知道的是驗證碼的網址 即使是 同樣的jimage.jpg?1682555每次出現的都不一樣
那麼 我程式 登入的時候 抓取到了現在用哪個網址
再分出 副程式讀取 這個網址的圖片 所得到的 也跟原本的不一樣
這樣要怎麼應用呢??
不好意思 問題蠻白癡的不過我真的對於網站認證 一竅不通麻煩解惑一下謝謝
同session带Cookie请求,验证码后面带的是时间戳,有没有校验,登录抓包测试才知道,这网站大陆没法登陆 繁星 发表于 2023-4-30 11:52
同session带Cookie请求,验证码后面带的是时间戳,有没有校验,登录抓包测试才知道,这网站大陆没法登陆
在你的幫助下 我已經了解 ddddocr离线版 怎麼用了,非常感謝
但是我 上面的問題 還是 不知道怎麼解決
所以不知道是否 可以 麻煩妳寫一段 範例程式預想對方網站會怎麼回復,然後我在實際模仿測試看看,這樣我比較好有個方向 下手 如果右键点验证码图片 上面的字符不会改变的话,可以先下载验证码图片,放在自建的web服务器目录下,用ddddocr离线版读取后存入本地ini文件内,再读取ini文件 写入网站的验证码输入框内 #AutoIt3Wrapper_UseX64 = n
#include <GDIPlus.au3>
$bjiniwj = 'D:\sz.ini'
;$hGUI = GUICreate("DDDDocr", 900, 380)
GUISetState()
_GDIPlus_Startup()
InitModel()
;For $i = 0 To 29
; Local $x = 180 * Mod($i, 5) + 5, $y = 60 * Floor($i / 5) + 10
$dImage = InetRead ("http://127.0.0.1/yzm/xz.jpg" );& $i, 1
$hImage = _GDIPlus_BitmapCreateFromMemory($dImage)
;$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
;_GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, $x, $y, 170, 40)
Local $img = DllStructCreate('byte[' & BinaryLen($dImage) + 1 & ']')
DllStructSetData($img, 1, $dImage)
; GUICtrlCreateLabel('Online:' & _Httpdddd($dImage) & ' Offline:' & Identify($img, $dImage), $x + 5, $y + 45)
If IniWrite($bjiniwj, 'yzm', 'yzm', Identify($img, $dImage)) Then
exit
endif
_GDIPlus_ImageDispose($hImage)
; _WinAPI_DeleteObject($hGraphics)
;Next
_GDIPlus_Shutdown()
FreeModel()
While True
Switch GUIGetMsg()
Case - 3
ExitLoop
EndSwitch
WEnd
Func InitModel()
Local $Result = DllCall(@ScriptDir & '\ddocr_qs.dll', 'bool', 'InitModel', 'int', 6, 'bool', True)
Return $Result
EndFunc
Func Identify($img, $imlen)
Local $Result = DllCall(@ScriptDir & '\ddocr_qs.dll', 'str', 'Identify', 'ptr', DllStructGetPtr($img), 'int', BinaryLen($imlen))
Return $Result
EndFunc
Func FreeModel()
Local $Result = DllCall(@ScriptDir & '\ddocr_qs.dll', 'bool', 'FreeModel')
Return $Result
EndFunc
Func _Httpdddd($img)
Local $bData = Binary('---' & @CRLF & _
'Content-Disposition: form-data; name="image"; filename="image"' & @CRLF & @CRLF) & _
StringTrimLeft($img, 2) & StringTrimLeft(Binary(@CRLF & '-----'), 2)
Local $oHttp = ObjCreate('WinHttp.WinHttpRequest.5.1')
$oHttp.Open('POST', 'http://42.192.1.233:9898/ocr/file/text', True)
$oHttp.SetRequestHeader('Content-Type', 'multipart/form-data;boundary=-')
$oHttp.Send(Binary($bData))
$oHttp.WaitForResponse()
Return BinaryToString($oHttp.ResponseBody())
EndFunc
页:
[1]