/1 前言/
昨天其實已經發布了上篇,但是忘記標注原創了,今天繼續將其發布出來,與下篇一起給大家,這樣大家就可以直接重頭看到尾了。這篇文章主要是實戰,實現谷歌人機破解具體過程。
/2 實現步驟/
1、既來之則安之,選擇了2captcha,就要看看人家的官網啦,如下圖所示。

2、嗯...純英文,我也看不懂..怎么辦呢,別着急,我帶你們一步一步分析主要功能。首先來登錄賬號,如下圖所示。

3、登錄完成后,會自動跳到主頁,如下圖所示。

上圖中第一個紅色圈起來的地方表示剩余多少錢,沒有錢的話記得要氪金,否則是不能用滴,氪金過程這里就不多做解釋了哈,問題不大
第二個紅色圈起來的地方表示這是你的唯一key,每次請求要帶上這個key的,所以要保管好
4、進入主題,研究文檔。點擊紅色圈的地方,API,一般API都是文檔,如下圖所示。


5、En....什么玩意..完全看不懂,別慌,往下滑

滑到rates這個目錄,我們知道,谷歌人機是ReCaptcha,但是三個呢,到底是哪個呢,我就來帶大家看看。
6、首先點擊ReCaptcha(oldmethod),這個是老的方法,咱也不知道唉,所以就先看看這個吧,從淺到深嘛,這里呢,我都直接翻譯了一下,方便我們觀看。

7、Look,人家也說了,舊方法解決ReCaptcha准確率比較低,建議使用新方法,那我們就點擊新方法去看看。

8、我們找到了,這種屬於ReCaptcha v2驗證碼,確實和谷歌人機挺一樣的,我們來看一下文檔是怎么寫的。


9、人家說,我們先找到data-sitekey參數,然后將data-sitekey參數提交到https://2captcha.com/in.php,等個15-20s再向https://2captcha.com/res.php獲取結果。然后找到id=g-recaptcha-response的textarea標簽,將display:none這個css刪除,將給我們字符串添加到textarea輸入框點擊提交,就完成了。
是不是很簡單?我們也來試一下。打開谷歌的示例樣式,如下圖所示。

10、我們打開開發者工具,搜索data-sitekey,可以看到,真的有一個。

11、我們賦值一下這個data-sitekey,並且用代碼獲取到最后的結果。

12、然后我們找到 id=g-recaptcha-response 的textarea標簽,將他的display屬性刪除。

13、但是有點不太對。

14、Look,下圖這個是2captcha的示例的。

我們可以看到,2captcha是個刪除display之后,textarea框是直接展示出來的,但是我們刪除display之后,基本沒用絲毫動靜,這...
15、別着急,人家都想到了,我們往下滑滑。

既然我們不能直接顯示出來textarea,那就說明我們是隱式的ReCaptcha驗證碼,其實他的原理呀,也挺簡單。
如果你學過一些前端,會些js,你可能就會想到,雖然我看不到這個textarea,但是通過js我們仍然能更改textarea的數據,只是說,我們鼠標點擊不了而已,人家也說了,看第一個紅圈的位置,通過此js,我們我們就可以把向2captcha獲取的值賦值上,第二個圈js是提交表單,其實就是我們人點擊提交而已,只不過是js代碼幫我們完成了,這樣,我們也完成了一個偷天換日。
/3 小試牛刀/
1、好嘞,我們就先來手動搞一下,在上述中,我們已經根據data-sietkey拿到了最后的結果,顯然,我們只能通過js完成,那么,我們就試一下。

通過上述gif看到,我們通過js,確實繞過了點擊車輛識別了,其他識別,確實方便。
2、但是我們不可能通過人每次這樣搞呀,但是因為牽扯到了執行js,所以只能使用selenium,所以,我們來看一下selenium上的效果吧。

Look,這樣,我們就針對谷歌人機(ReCaptcha)驗證碼,完成了自動登錄,如果爬取國外的某某網站時,如果遇到了ReCaptcha,我相信一定會對你有幫助。
/4 結語/
本文主要介紹了使用第三方平台(https://2captcha.com/zh?from=8779379)去破解谷歌人機登錄,方法有些曲折,但是行之有效。
歡迎大家嘗試,消耗在家的無聊時間。本文涉及的代碼都上傳到了github地址上,后台回復“谷歌人機”四個字即可獲取代碼。