The most fundamental protocol submission analysis of reCaptcha (for those who do not know how to submit, refer here)

很多刚刚学语言刚刚学爬虫的新人连POST都不知道是什么,

但是却要挑战地球最强验证码reCaptcha。

 

我们以这个网站为例:https://www.gia.edu/report-check?reportno=7328756202

首先假设你已经会调用接口生成g-recaptcha-response了

就是下面这一串:

03AEkXODD5JEeoOMUbZf-KgVnarLnGCtt-sTAOZNUH7-tb7LVkS5vHmKoOT7FsP295t6fKVRrZs7UnudWy4mB4vzkVLaWFu_fJ6onxlhwtzELECYFrobIQTRFfw_F_JQgHOolAck7Hs09j0l-SLtDh5Eh3DtZig31Noh_bkdcNrdzD83Mc2pTpUh01afQ-eHWVsBN7h504iG56XMde754Hqynn6y8CIdnYWC-a1SGXUXeFS0tBUAyivWkHH1gjzXjYL1FlD2hxB-bQyjITD9ODQ29-pXv3fAKw4JxB9ASfIDZo2j8KQTbrTBQ1RwaPXxVl1Qv3rpvJccTTWRo0CGsV9_vfzTsTFXEoGvATewr0C0PauY7rUB9Z6trHksrsSHvPHQtD3FpFr1Z678J1qo6WTNL0w6bM8Oz6kKOUsdsYkw4DsC_sI_6WQv622FOQkYJz3CfL9F9Gs0cQgNb0A7Z8EhXgFLu4yG1fS5UDEmwM-SFdrH8beuGqYwcqhGzM1dYhnLC8y3JJpoc61rFIZzAqGUlE1r9NTgHzzw

如果还不会,请先详细阅读基础教程:

 

网站验证码是这样的:

很明显,识别之后点击SUBMIT按钮,就会将验证码识别结果,

也就是上一步生成的token值(g-recaptcha-response)提交给网站

那倒底提交到哪里,就需要我们打开浏览器调试

打开浏览器,按F12,再点击Network,就可以看到所有发送的网络请求

这时候,我们去点击验证码提交按钮,注意网络请求里面就出现了一个POST请求,

如下图所示:

点开这个请求,首先他是POST请求,然后我们再点开Payload选项卡,这里就是所有提交的内容

注意看里面,就有一个参数名叫grecaptcharesponse,对应的值正好是刚才我们提到的那串03A开头的字符串,这个就是验证码的识别结果,这里就是提交给网站进行验证。

所以,我们只需要写代码,实现一个一模一样的提交过程就可以了

以Python为例:

以下代码未验证,仅做提交例子供参考

import requests data = { "grecaptcharesponse": "03AEkXODD5JEeoOMUbZf-KgVnarLnGCtt-sTAOZNUH7-tb7LVkS5vHmKoOT7FsP295t6fKVRrZs7UnudWy4mB4vzkVLaWFu_fJ6onxlhwtzELECYFrobIQTRFfw_F_JQgHOolAck7Hs09j0l-SLtDh5Eh3DtZig31Noh_bkdcNrdzD83Mc2pTpUh01afQ-eHWVsBN7h504iG56XMde754Hqynn6y8CIdnYWC-a1SGXUXeFS0tBUAyivWkHH1gjzXjYL1FlD2hxB-bQyjITD9ODQ29-pXv3fAKw4JxB9ASfIDZo2j8KQTbrTBQ1RwaPXxVl1Qv3rpvJccTTWRo0CGsV9_vfzTsTFXEoGvATewr0C0PauY7rUB9Z6trHksrsSHvPHQtD3FpFr1Z678J1qo6WTNL0w6bM8Oz6kKOUsdsYkw4DsC_sI_6WQv622FOQkYJz3CfL9F9Gs0cQgNb0A7Z8EhXgFLu4yG1fS5UDEmwM-SFdrH8beuGqYwcqhGzM1dYhnLC8y3JJpoc61rFIZzAqGUlE1r9NTgHzzw", "recaptcha_src": 0, "reportno": "undefined" } url = "https://data.gia.edu/RDWB/VerifyRecaptcha" result = requests.post(url, data=data).text print(result)

一般来说,如果提交正常,会返回正确的结果,提交错误,则返回错误的结果

但是上面的例子肯定是错误的,因为网站在提交的可能会验证包括cookies等内容。

但大致提交和分析原理就是这样。

如果您现在还不知道如何获取cookies,以及如何模拟headers的话,

建议您先学习爬虫入门基础知识。

 

或者直接使用我们的模拟点击插件: