跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonNode.js算法

国家企业信用信息公示系统爬虫流程与验证码绕过方案

国家企业信用信息公示系统爬虫涉及复杂的 Cookie 链获取及极验验证码处理。流程包括三次页面访问初始化 Cookie、调用第三方打码平台解决滑动验证、最终构造请求解析企业详情。核心难点在于动态 JS 环境模拟与验证码参数传递。

蓝绿部署发布于 2025/1/19更新于 2026/6/817 浏览
国家企业信用信息公示系统爬虫流程与验证码绕过方案

概述

在爬取国家企业信用信息公示系统时,主要面临双重挑战:一是动态生成的 Cookie 校验机制(__jsluid_h, __jsl_clearance),二是随机出现的极验验证码(滑动或点选)。直接硬刚破解 JS 耗时较长,本方案采用分步模拟浏览器行为结合第三方打码平台的方式实现稳定抓取。

核心流程分析

1. Cookie 链初始化

网站通过多次访问建立信任会话,需按顺序完成以下三步:

  • 首次访问首页,获取 __jsluid_h 及响应生成的 __jsl_clearance。
  • 二次访问首页,更新 __jsl_clearance。此步骤涉及混淆的 JS 执行,建议先还原代码调试,再改写逻辑。
  • 三次访问,确保 JSESSIONID、SECTOKEN 及 tlb_cookie 等关键 Session 信息写入。

以下是更新 __jsl_clearance 的关键 Python 代码片段,利用 execjs 在本地模拟 Node.js 环境执行清理脚本:

import re
import execjs

def update_jsl_clearance(s, url):
    resp = s.get(url)
    js_pre = """ var document = {}; var location = {pathname:"pathname", search:"search"}; function getCookie(func, time){ func(); }; """
    # 提取并清理检测浏览器的相关代码
    js_str = js_pre + re.findall('<script>(.+?)</script>', resp.text)[0]
    replace_str = re.findall(r'function go.+?var .{7,10}=.{7,10};(.+?)var .{7,10}=new Date', resp.text)[0]
    js_str = js_str.replace(replace_str, '')
    
    # 替换 setTimeout 防止执行失败
    js_str = js_str.replace('setTimeout', 'getCookie')
    ctx = execjs.compile(js_str)
    __jsl_clearance = ctx.eval('document.cookie')
    __jsl_clearance = re.findall('__jsl_clearance=(.+?);Max', __jsl_clearance)[0]
    
    s.cookies.set('__jsl_clearance', __jsl_clearance)
    print(f'更新 cookie 成功:{__jsl_clearance}')

2. 验证码处理

当触发极验验证时,流程如下:

  1. 访问验证码接口获取 gt 和 challenge 参数。
  2. 将参数发送至第三方打码平台(如 2captcha),获取任务 ID。
  3. 等待平台返回解算结果(通常需 15-20 秒),获取 geetest_validate 等凭证。
  4. 携带凭证访问验证接口,获取 token 值。

3. 数据请求与解析

使用上述所有参数及 Cookie 构造列表页请求,解析详情页 URL 后发起最终请求,即可获取企业工商信息。

运行日志参考

1.设置 cookie 成功:1599319589.733|-1|tig5%2FrcdXMP5mCDrEIz6sGfxgDo%3D
2.更新 cookie 成功:1599319589.99|0|pZbcb9vKT%2FaYREOJJrcpgCyXgMU%3D
3.Set-Cookie 成功 (JSESSIONID, SECTOKEN, tlb_cookie)
4.获取 gt, challenge 成功:{"success":1,"challenge":"de9f8bb4499c6581b74b4e7b5f7863cd","gt":"62756445cd524543f5a16418cd920ffd"}
5.发送 2captcha 成功,获取 task_id: OK|64672632650
6.按照 2captcha 官方要求,需要等待 15-20s, 等待中...
7.OK|{"geetest_challenge":"de9f8bb4499c6581b74b4e7b5f7863cd","geetest_validate":"f5807eb51dedb1d73b","geetest_seccode":"f5807eb51dedb1d73b|jordan"}
8.获取 token 成功:34898487
9.详情页 URL 生成完毕
10.解析结果示例:{'credit_code': '91110000802100433B', 'company_name': '北京百度网讯科技有限公司', ...}

总结

该系统的核心难点在于每次搜索都接入了极验验证码,且伴随复杂的 Cookie 校验。如果去硬刚破解 JS 耗时耗力,这里我们直接使用了第三方的打码平台来辅助验证。以上流程仅供参考,实际应用中需注意频率控制与合规性。

目录

  1. 概述
  2. 核心流程分析
  3. 1. Cookie 链初始化
  4. 2. 验证码处理
  5. 3. 数据请求与解析
  6. 运行日志参考
  7. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C++ STL map 容器核心概念与实战应用
  • 如何从零开始学习信息安全与网络安全
  • MySQL 5.7 升级到 8.0 的过程及注意事项
  • Python YAML 模块实战:接口测试参数存储与配置管理
  • 网络安全入门指南:Web 渗透学习路线与核心技能详解
  • GLM-5 代码生成能力深度评测与实战体验
  • OpenClaw 龙虾 AI 安装与配置教程
  • Unsloth 模型兼容性详解:Llama、Qwen、Gemma 全支持
  • Ascend C 算子开发指南:从语法基础到算子实操
  • 无人机“黑飞”正式入法:2026 年 1 月 1 日起违规飞行将面临拘留
  • JavaScript 中 var、let、const 的核心区别与实战应用
  • JavaScript 文本框字符屏蔽与剪贴板事件处理
  • Python 爬虫入门实战指南
  • 鸿蒙系统若不再兼容安卓,对行业生态有何影响?
  • 多模态 AI 应用:图文音视频一体化开发实战
  • llama.cpp 多 GPU 分布式计算优化实践指南
  • Handy:完全离线的开源语音转文字应用
  • Buzz:基于 Whisper 的离线语音转写工具,隐私安全有保障
  • 智源研究院开源中英双语 AltDiffusion 模型
  • 无人机视觉语言导航:基本概念与问题定义

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online