解決 Web 驗證碼
動詞:webSolveCaptcha
可用來源: <Enterprise>
在網頁上自動或使用選取器尋找 reCaptcha,並對其進行解析。
語法
webSolveCaptcha [--auto(Boolean)] [--siteurl(String)] [--captchatype(Nullable<CaptchaType>)] [--action(String)] [--minscore(Numeric)] [--selector(WebFieldElementSelectors)] [--apikey(String)] [--simulatehuman(Boolean)] [--timeout(TimeSpan)] --id(String) --name(String) --css(String) --xpath(String) (Boolean)=value (String)=token
輸入
Script | 設計工具 | 必要 | 接受的類型 | 說明 |
---|---|---|---|---|
--auto | 自動偵測 | 選用項目 | 布林值 | 啟用後,將在導覽頁面上尋找 reCaptcha 並進行自動解析。在網頁上,bot 將自動找到 reCaptcha 所在的位置。 並且將在此位置執行,不管是否會修改網頁,是否會變更 reCaptcha 位置。 |
--siteurl | URL | 選用項目 | Text | 包含 reCaptcha 的網頁的位址。 |
--captchatype | 驗證碼版本 | 選用項目 | Captcha 類型 | 頁面中使用的 ReCaptcha 版本: |
--action | 動作 | 選用項目 | Text | 為啟動「使用者是不是機器人」確實性檢查的動作所給定的名稱。動作的名稱是在對映網站時所取得。 |
--minscore | 評分下限 | 選用項目 | 數字 | 解析 reCaptcha 所需的最低分數。值的範圍從 1 到 9。 |
--selector | 選取器類型 | 選用項目 | Web 欄位元素選取器 | 識別 reCaptcha 對話框的 Web 元素的選取器類型包括: |
--apikey | API 金鑰 | 選用項目 | Text | 2Capctha API 金鑰用來與 captcha API 進行通訊,並解析它。 金鑰由 32 個字元的字串組成,例如: 1abc234de56fab7c89012d34e56fa7b8 可在 API 網站帳戶設定頁面 2Captcha上取得。 |
--simulatehuman | 模擬人類 | 選用項目 | 布林值 | 模擬人類使用者的互動,將滑鼠游標移至元素中心然後按一下。 |
--usetable | usetable(已作廢) | 選用項目 | 布林值 | |
--timeout | 逾時值 | 選用項目 | 時間跨距、數字、文字 | 指令執行的等待時間上限。如果未定義 timeout 參數的值,則執行會使用設定逾時指令所定義的環境定義逾時。 如果該指令未使用於 Script,預設逾時為 5 秒。 |
-- id | 欄位 ID | 只有在選取器類型為 Id、IdAndName 時 | Text | 將從中取得值的欄位的 ID。 |
-- name | 欄位名稱 | 只有在選取器類型為 Name、IdAndName 時 | Text | reCaptcha 的識別元素的名稱。 |
--css | 元素 CSS | 只有在選取器類型為 CssSelector 時 | Text | 用於識別 reCaptcha 的 "iframe" 元素的 CSS 選取器。 |
--xpath | XPath | 只有在選取器類型為 XPath 時 | Text | 要尋找 reCaptcha ID 元素的 XML 路徑。 |
輸出
Script | 設計工具 | 接受的類型 | 說明 |
---|---|---|---|
價值 | 價值 | 布林值 | 如果已解析 reCaptcha,則傳回 "True" ;否則,傳回 "False"。 |
token | 記號 | Text | 傳回傳送到網頁的 reCaptcha 解析的回應記號。回應記號有效時間為兩分鐘,並且僅用於驗證目的。 |
範例
將啟動 Google Chrome 導覽,導覽到「國內稅務服務」頁面。 隨後,使用產生 CNPJ 指令產生隨機 CNPJ 編號,以便在網站上諮詢登錄狀態。 因此,在 While 的指示區塊中使用 Solve Web Captcha 指令,以解決頁面上現有的 reCaptcha。
defVar --name generatedCnpj --type String
defVar --name solvedCaptcha --type Boolean
webStart --name chrome --type "Chrome"
webNavigate --url "https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/cnpjreva_solicitacao2.asp"
genCNPJ generatedCnpj=value
webSet --value "${generatedCnpj}" --selector "Id" --id cnpj --simulatehuman
// The "While" command executes the "Solve Web Captcha" command in your instruction block as long as the reCaptcha resolution is not "True".
while --left "${solvedCaptcha}" --operator "Is_True" --negate
webSolveCaptcha --selector "CssSelector" --css "#frmConsulta > div:nth-child(2) > div.col-md-4 > div > div > div > iframe" --timeout 00:05:00 solvedCaptcha=value
endWhile
webClick --selector "CssSelector" --css "#frmConsulta > div:nth-child(4) > div > button.btn.btn-primary"
webClose --name chrome --leavebrowseropen
// Displays on the IBM Robotic Process Automation Studio console whether the "reCaptcha" has been successfully resolved.
logMessage --message "The \"reCaptcha\" was solved: ${solvedCaptcha}" --type "Info"
備註
- 如果 URL 為空白,則依預設,將使用網站的 URL。 但是,如果 reCaptcha 是使用 iFrame 啟動的,則可能會導致無法正確執行指令。
- 解析 reCaptcha 的回應時間根據所需的分數層次而有所不同。
- reCaptcha v3 求解的索引速率最多為 90%。