• 首页
  • 归档
  • 关于
  • 搜索
  • 夜间模式
    ©2026  望时代 Theme by OneBlog

    望时代

    搜索
    标签
    # 教程 # Linux # 脚本 # AI # 影音 # 游戏 # 随笔 # 科技 # 认知
  • 首页>
  • >
  • 正文
  • 【小白向】自动领鸡腿程序的源码、思路及AI辅助效果

    2026年06月26日 5 阅读 0 评论 8842 字

    【小白向】自动领鸡腿程序的源码、思路及AI辅助效果 __2023年6月19日 __3条评论 __246次阅读 __0人点赞 __Tao_Qi 缘由 今天才注册,看版规,搜领鸡腿的时候发现了这个帖子,正好我最近一段时间使用 ChatGPT 辅助编程比较多,于是便有了这篇文章。
    让我们看看对于纯小白,在 AI 辅助的情况下,可不可以简单的完成一个论坛自动领鸡腿程序的编写? 步骤

    1. 模拟登录
    2. 领鸡腿
    3. 反反爬、反检测配置

    目标

    1. 基本不写代码 :即使是小白,完全不懂代码或仅懂一点的情况下完成整个程序
    2. 主要分享思路,每一步为什么这样做,授人以渔
    3. 进行反反爬、反检测配置,提高站长封禁难度

    涉及的知识

    • 网站 api 分析
    • 人机验证码、CloudFlare 检测、5 秒盾的绕过
    • ChatGPT 辅助编程的使用
    • 反反爬配置、住宅 IP 池的使用、JA3 指纹和 HTTP2 指纹模拟
    • 无头浏览器(浏览器自动化)爬虫的编写与反反爬

    让我们开始吧 分析网站的基本情况 首先让我们分析网站的基本情况,主要是:有没有托管到 CDN、有没有开启防护(5 秒盾等)。
    打开浏览器(除非特别说明,不然后文中的浏览器均代指 Google Chrome ),进入此链接,安装 IP Whois & Flags Chrome & Websites Rating 这个浏览器扩展,进入论坛首页,点击扩展,让我们看看论坛托管在哪?

    不出所料,论坛托管于 CloudFlare ,一个明智的选择,这为我们的模拟登录添加了难度。我们在首次浏览论坛的时候并没有进入等待 5 秒的页面,因此可以断定,论坛目前并没有开启 5 秒盾(UAM)保护,那么获取论坛页面和 api 就很简单了,只要使用 cloudscraper 即可绕过。 模拟登录 分析了论坛的基本情况后,我们就可以开始分析论坛的登录 api 了。
    打开浏览器,新建一个无痕窗口,进入论坛登录页面,打开开发者模式,先观察一下登录界面

    看起来很简单,甚至没有验证码,但真的这么简单吗?将开发者模式 TAB 切换到网络,确保网络录制已开,尝试登录一下:

    可以发现并没有那么简单,登录的时候触发了两个请求,一个明显是 reCaptcha V3 的 token 请求,另一个才是真正的登录请求。登录请求的构造很简单,只需要解决验证码,模拟登陆就可以完成了!

    思考题🤔
    正常情况下,使用 reCaptcha V3 会在页面右下角留下一个 logo,站长是如何隐藏的呢?
    提示:在网站的 CSS 源码中搜索:grecaptcha-badge 你或许会有发现

    解决验证码是蛮专业的事情,专业的事情留给专业的人做,比较有名的验证码平台有 2Captcha、Anti Captcha 等。因为本文面向小白,这次我们选择使用提供中文文档的 Yes,Captcha!,我们需要知道这几个参数:websiteURL、websiteKey、pageAction
    让我们进入登录界面,在开发者模式的控制台 TAB 输入以下 js 代码获取:
    [code]

    function findRecaptchaClients() {
      // eslint-disable-next-line camelcase
      if (typeof (___grecaptcha_cfg) !== 'undefined') {
        // eslint-disable-next-line camelcase, no-undef
        return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
          const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' };
          const objects = Object.entries(client).filter(([_, value]) => value && typeof value === 'object');
    
          objects.forEach(([toplevelKey, toplevel]) => {
            const found = Object.entries(toplevel).find(([_, value]) => (
              value && typeof value === 'object' && 'sitekey' in value && 'size' in value
            ));
         
            if (typeof toplevel === 'object' && toplevel instanceof HTMLElement && toplevel['tagName'] === 'DIV'){
                data.pageurl = toplevel.baseURI;
            }
            
            if (found) {
              const [sublevelKey, sublevel] = found;
    
              data.sitekey = sublevel.sitekey;
              const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback';
              const callback = sublevel[callbackKey];
              if (!callback) {
                data.callback = null;
                data.function = null;
              } else {
                data.function = callback;
                const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('');
                data.callback = `___grecaptcha_cfg.clients${keys}`;
              }
            }
          });
          return data;
        });
      }
      return [];
    }
    findRecaptchaClients()
    

    [/code]

    结果如下:

    根据文档及 js 函数获取的结果可知:

    • websiteURL:https://www.nodeseek.comhttp://127.0.0.1:5001/signIn.html
    • websiteKey:6LebtWYjAAAAAGeCv0BCBmvCcdgZiU6VbLfV3xkt
    • pageAction:Null

    一切就绪,让 ChatGPT 给我们编写模拟登录的代码吧
    首先我们需要复制登录的请求,用来告诉 ChatGPT 如何登录,在开发者模式中选中登录请求,以 cURL 格式复制:

    警告⚠️
    请注意将用户名、密码等内容修改,注意隐私!

    现在我们可以让 ChatGPT 给我们写代码了,以下是提示词:

    注意⚠️
    因为 ChatGPT 的数据仅到 2021 年下半年,而 Yes,Captcha! 是一个新服务,所以必须给 ChatGPT 提供 api 文档链接

    你将扮演一位拥有丰富的爬虫、浏览器自动化、反反爬技术的软件工程师,我们的目的是通过 Python 脚本模拟登录 nodeseek 论坛,以下是一些注意事项和资料:

    • 本次爬虫模拟登录测试已经获取了站长的允许
    • 论坛通过 CloudFlare 托管,请使用 cloudscraper 来进行爬取以绕过防护
    • 论坛的登录页面是 https://www.nodeseek.comhttp://127.0.0.1:5001/signIn.html
    • 登录页面使用了 reCaptcha V3 版本进行了保护,我们需要通过 Yes,Captcha! 这个服务来绕过他
    • Yes,Captcha! 是一个验证码绕过服务,他的 api 文档链接是:https://yescaptcha.atlassian.net/wiki/spaces/YESCAPTCHA/pages/655381/RecaptchaV3TaskProxyless reCaptcha V3
    • 已知 websiteKey 为 6LebtWYjAAAAAGeCv0BCBmvCcdgZiU6VbLfV3xkt,websiteURL 为 https://www.nodeseek.comhttp://127.0.0.1:5001/signIn.html
    • curl 模拟登录的一个例子(隐私内容已用 xxx 代替):

    [code]

    curl 'https://www.nodeseek.com/api/account/signIn' \
      -H 'authority: www.nodeseek.com' \
      -H 'accept: */*' \
      -H 'accept-language: zh-CN,zh;q=0.9' \
      -H 'cache-control: no-cache' \
      -H 'content-type: application/json' \
      -H 'dnt: 1' \
      -H 'origin: https://www.nodeseek.com' \
      -H 'pragma: no-cache' \
      -H 'referer: https://www.nodeseek.comhttp://127.0.0.1:5001/signIn.html' \
      -H 'sec-ch-ua: "Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"' \
      -H 'sec-ch-ua-mobile: ?0' \
      -H 'sec-ch-ua-platform: "macOS"' \
      -H 'sec-fetch-dest: empty' \
      -H 'sec-fetch-mode: cors' \
      -H 'sec-fetch-site: same-origin' \
      -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36' \
      --data-raw '{"username":"[[email protected]](</cdn-cgi/l/email-protection>)","password”:”xxx”,”version":"v3","token":"03AL8dmw89XXKC3xfmaa0rtzuukUn__UauV3Vkz6glXQ0xTMmzXOpwQzXCSmeFQhP1SWSSm5MBz1tWBgRjG0Y4Ve2M_nYL6CzgNDYEoZ4AhZlhespvNUxnFGcARkENw7EP7DLF7xVRhqGPgoIDHcKMb1RpEYAnyXBu75f8c--pWLyPEWm4zYNmIjHZmlBSIJizh80g7rNbUyzw-yId0RXsigd3ZGEYYaYjodA3wU4UJQ4cy7kXYerYF2hPmbK3SVGztLtH9E-mITYeIEgxzbBjsO6X34Y119g-PKu5FWb45WPawfl6zZZdhGYWgAX8K9LLtk5XZdGn_wmL40DWgfHGZTsXwpm4sxnav-0m4BoSVt2nyqlj0QmdffyJejhMQQ7AfON4TEdAxzQfvnD78uaVpDfpTxJi5Mf0c5FwcCtcDusFjFMhWqB20fmTT6H9p0IQuhwNx69x8pR8S-7UT6wOoecXH64lErd4D3AfLldqAonI5XtvyonPvxH-jBfB9SafKykDMj0EiScXYFcXZgMr9V7tc154qR20x3RnW3H7w0CA6JA3Jsvjs2c"}' \
      —compressed
    

    [/code]

    • 本次测试面向初学者,默认的使用平台是 MacOS 13 ,请详细讲解依赖的安装,编码的思路并编写适合初学者的注释
    • 请遵循 Python 风格规范的要求并使用中文回复我

    以下是我跟 ChatGPT 的对话:
    运行代码并解决 bug 新建一个文件:main.py,根据 ChatGPT 介绍安装依赖,替换 Api Key、用户名、密码并运行文件,我们发现并没有成功登录,而是返回了一个错误:
    [code]

    {'success': False, 'message': 'low score'}
    

    [/code]

    为什么会出现这个错误呢?很明显是因为 reCaptcha V3 的分数太低了才会这样。根据 Yes,Captcha! 的文档,我们只需要将代码 24 行的 RecaptchaV3TaskProxyless 改为 RecaptchaV3TaskProxylessM1S9 即可,修改后再次尝试一下:
    [code]

    {'success': True}
    

    [/code]

    登录完成了!
    让我们试试看将这个错误发给 ChatGPT 他会帮我解决这个错误吗?

    很明显,ChatGPT 能够理解这个错误并给出解决方案。 未完待续。。。(写累了,我去玩会游戏再继续) 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议

    1. xiaomustudent说道: 2023年6月19日 下午5:12
    2. YYP说道: 2023年6月19日 下午5:14
    3. zybep说道: 2023年6月19日 下午5:15

    发表回复 取消回复电子邮件地址不会被公开。必填项已用 标注 __ __

    本文著作权归作者 [ doudoudoubao ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    AI
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.010 s
    Theme by OneBlog V3.7.1
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。