阿里雲賬號註冊步驟:阿里驗證碼識別

考慮這樣一個場景,當你在app端提交訂單/登錄的時候有一個滑動驗證碼怎麼處理?

一般我們會採用自動化瀏覽器完成這樣的抓取,但是效率太低。本篇文章嘗試將滑動驗證碼和抓取的代碼進行解耦。

也就是滑動驗證碼模塊只管獲取滑動之後的token,而抓取的代碼只管抓取。中間通過相關存儲介質進行通訊。

背景分析

通過各種嘗試發現,某app中阿里雲的滑動驗證碼只是操作行為的驗證。

簡而言之,就是阿里雲只是知道有人滑了驗證碼,並且此驗證碼並沒有被使用過。

通過分析和嘗試,我們完全可以有一個自動化瀏覽器去滑動生成未使用過的token,然後通過python讀取token完成相關抓取。

這樣相當於有個滑動驗證碼池,其他的業務需要的話可以直接讀取使用。

準備知識

puppeteer破解阿里h5滑動驗證碼

chrome遠程調試webview(
https://developers.google.cn/web/tools/chrome-devtools/remote-debugging/webviews?hl=zh-cn)

流程分析

使用puppeteer生成未使用過的滑動驗證碼,並把相關信息攔截,存起來。python讀取滑動驗證碼池,完成相關抓取。

效果展示

爬蟲 | 破解APP中阿里雲滑動驗證碼
爬蟲 | 破解APP中阿里雲滑動驗證碼
爬蟲 | 破解APP中阿里雲滑動驗證碼

核心代碼

puppeteer 通過監聽response事件,把response的內容存起來

page.on('response',async response=>{
        let url = response.url()
        if (url.indexOf('analyze.jsonp')!==-1){
            let  content = await response.text()
            if(content.indexOf('block')===-1){
                let  file_name = "slide/"+process.pid +Date.now()+".txt"
 
                 fs.writeFile(file_name,content+url,{encoding:'utf-8',mode:'0666'},function (err) {
                    console.log(err)
                })
 
            }
        }
    })

python讀取存儲的token

爬蟲 | 破解APP中阿里雲滑動驗證碼

滑動驗證碼的token有3個字段,分別是csessionid,value,t(t的格式是xxx:時間戳:隨機數)

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/219426.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 10:56
下一篇 2024-12-09 10:56

相關推薦

發表回復

登錄後才能評論