← 返回
未分类

whatweb

网站技术栈识别工具(Python 版 Wappalyzer/WhatWeb)。分析目标网站的服务器、框架、JS 库、CDN、分析工具、托管服务等技术特征,纯标准库实现,零依赖。
网站技术栈识别工具(Python 版 Wappalyzer/WhatWeb)。分析目标网站的服务器、框架、JS 库、CDN、分析工具、托管服务等技术特征,纯标准库实现,零依赖。
user_44f12bcc
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 1
Stars
📥 18
下载
💾 0
安装
1
版本
#latest

概述

WhatWeb — 网站技术栈识别

Python 版网站技术指纹识别工具,功能类似 Wappalyzer / WhatWeb(Ruby),纯标准库实现,无需任何外部依赖。

能检测什么

类别检测项
--------------
服务器 / 中间件nginx、Apache、IIS、LiteSpeed、Cloudflare、Caddy、Tomcat、OpenResty、Tengine、Jetty、Gunicorn、uWSGI、Waitress、Go、Node.js
后端语言 / 框架PHP、ASP.NET、Express、Next.js、Koa、Flask、Django、Laravel、Slim、Phalcon
前端框架 / SSGReact、Vue.js、Angular、Next.js、Nuxt.js、Gatsby、UmiJS、Ant Design Pro、Svelte、Astro、Remix、Eleventy、Hexo、Hugo、Django、Laravel、Ruby on Rails、Spring Boot、ASP.NET、CodeIgniter、Symfony
JS 库jQuery、jQuery UI、React、Vue.js、Angular、Bootstrap、D3.js、Lodash、Moment.js、Axios、Chart.js、Three.js、GSAP、Swiper、AOS、Anime.js、Popper.js、Tippy.js、SweetAlert、Select2、DataTables
CMS / 平台WordPress、Drupal、Joomla、Shopify、Wix、Squarespace、Ghost、Hexo、Hugo、Gatsby、Jekyll、Nuxt、Next.js、Typo3、Contao、WooCommerce、Magento、BigCommerce、PrestaShop、OpenCart、Salesforce Commerce
分析 / 追踪Google Analytics、Google Tag Manager、百度统计、CNZZ、腾讯分析、Umeng+、Hotjar、Mixpanel、Segment、Matomo、Plausible、Umami、Simple Analytics、Clarity
CDNCloudflare、jsDelivr、CDNJS、BootCDN、UNPKG、Akamai、Fastly、Azure CDN、AWS CloudFront、Bunny CDN、腾讯云 CDN、阿里云 CDN、百度 CDN
安全 / 防护Cloudflare、reCAPTCHA、hCaptcha、Turnstile、Akamai Bot Manager、Imperva、Sucuri、Wordfence
托管 / 云服务GitHub Pages、Netlify、Vercel、Render、Cloudflare Pages、Firebase、AWS、Azure、Google Cloud、阿里云、腾讯云
JS 运行时 / 构建工具Webpack、Vite、Parcel、Rollup、Esbuild、SWC、Babel、TypeScript

使用方法

基本用法

python whatweb.py <URL>

多个 URL

python whatweb.py https://example1.com https://example2.com

输出 JSON 格式

python whatweb.py <URL> --json

详细模式(显示响应头)

python whatweb.py <URL> -v

设置超时时间

python whatweb.py <URL> -t 30

示例

# 检测百度
python whatweb.py https://www.baidu.com

# 检测淘宝(JSON 输出)
python whatweb.py https://www.taobao.com --json

# 不写协议头会自动补全 https://
python whatweb.py example.com

# 多站点扫描
python whatweb.py https://www.baidu.com https://www.taobao.com https://wordpress.org

# 详细模式
python whatweb.py https://www.baidu.com -v

输出说明

============================================================
  WhatWeb — https://www.example.com
============================================================
  扫描时间: 2026-06-04 15:48:17

【基本信息】
  URL:          https://www.example.com
  状态码:       200
  Title:        Example Domain

【服务器 & 后端】
  Server:         nginx/1.18.0
  X-Powered-By:  PHP/7.4.0

【检测到的技术】
  ✓ nginx  [Server]
  ✓ PHP  [X-Powered-By]
  ✓ jQuery  [JavaScript]
  ✓ React  [Framework]
  ✓ Cloudflare  [CDN]

【JavaScript 库】
  - jQuery v3.6.0

【前端 / SSG 框架】
  - React

【安全特性】
  - HSTS
  - CSP
  - X-Frame-Options
============================================================

实现原理

  1. HTTP 头分析 — 解析 ServerX-Powered-BySet-CookieStrict-Transport-Security 等响应头
  2. Cookie 识别 — 通过 Cookie 名称推断后端框架(如 laravel_session → Laravel),使用正则词边界匹配,避免子串误报
  3. HTML 解析 — 提取 </code>、<code><script src></code> 等标签</li><li><strong>正则指纹匹配</strong> — 对 JS 文件路径、HTML 内容做正则匹配,识别框架/库特征,全部使用 <code>\b</code> 词边界防止误报</li><li><strong>重定向处理</strong> — 自动跟随 301/302 重定向,记录跳转链</li></ol><h2>扩展指纹库</h2><p>编辑 <code>whatweb.py</code> 中的 <code>FINGERPRINTS</code> 字典,按现有格式添加新的检测规则:</p><pre><code>FINGERPRINTS = { "js_libraries": { "YourLibrary": [r"your-lib[.-](\d+\.\d+(\.\d+)?)"], }, # ... 其他类别 } </code></pre><h3>指纹规则编写指南</h3><ul><li><strong>使用原始字符串</strong> <code>r"..."</code> 编写正则,避免转义问题</li><li><strong>加词边界</strong> <code>\b</code> 防止子串误报(如 <code>\bMage\b</code> 不会匹配 <code>image</code>)</li><li><strong>版本捕获</strong> 用括号分组 <code>(\d+\.\d+(\.\d+)?)</code> 提取版本号</li><li><strong>多模式</strong> 每个类别下提供多个识别模式,提高覆盖率</li><li><strong>测试验证</strong> 添加新规则后务必用目标站点验证,避免误报</li></ul><h2>文件说明</h2><table><thead><tr><th>文件</th><th>说明</th></tr></thead><tbody><tr><td>------</td><td>------</td></tr><tr><td><code>whatweb.py</code></td><td>主程序,纯 Python 标准库,零依赖</td></tr><tr><td><code>SKILL.md</code></td><td>本文件</td></tr></tbody></table><h2>技术细节</h2><ul><li><strong>纯标准库</strong>:<code>urllib.request</code>、<code>http.client</code>、<code>ssl</code>、<code>re</code>、<code>json</code>、<code>HTMLParser</code></li><li><strong>超时控制</strong>:默认 15 秒,可通过 <code>-t</code> 参数调整</li><li><strong>SSL 处理</strong>:自动跳过证书验证(方便内网/测试环境扫描)</li><li><strong>编码处理</strong>:优先 UTF-8,失败则 fallback 到 latin-1</li><li><strong>错误处理</strong>:HTTP 错误状态码仍可读取响应内容进行分析</li><li><strong>正则匹配</strong>:全部使用 <code>re.search</code> + <code>re.IGNORECASE</code>,支持大小写不敏感匹配</li><li><strong>词边界</strong>:Cookie 和平台检测使用 <code>\b</code> 词边界,避免子串误报</li></ul><h2>已知问题 / 限制</h2><ul><li><strong>动态内容</strong>:单页应用(SPA)的核心内容由 JS 动态渲染,<code>urllib</code> 无法执行 JS,可能漏检</li><li><em>解决方案</em>:接入无头浏览器(如 Playwright / Puppeteer)执行 JS 后分析</li><li><strong>CDN 混淆</strong>:部分站点通过 CDN 隐藏真实服务器,需结合 <code>Via</code> / <code>X-Cache</code> 头综合判断</li><li><strong>误报</strong>:部分短模式(如 <code>r"vue"</code>)可能误报,已加 <code>\b</code> 词边界缓解</li><li><strong>大文件超时</strong>:部分站点 HTML 过大(如 GitHub),需在超时时间内完成下载和分析</li></ul><h2>适用场景</h2><ul><li>竞品技术栈调研</li><li>安全评估前的资产指纹识别</li><li>网站迁移/重构前的现状摸底</li><li>学习研究(了解各网站用了什么技术)</li><li>批量扫描(结合 <code>--json</code> 输出 + 脚本批处理)</li></ul><h2>License</h2><p>MIT License</p></div> </div> </div> <div id="tab-versions" class="detail-content"> <div class="detail-section"> <h2>版本历史</h2> <p style="margin-bottom:12px;font-size:14px;color:#94a3b8;">共 1 个版本</p> <ul class="version-list"> <li> <div> <span class="version-tag">v1.0.0</span> <span style="font-size:13px;color:#64748b;margin-left:8px;">Initial release</span> <span style="font-size:11px;color:#5b6abf;margin-left:8px;background:#eef0ff;padding:1px 8px;border-radius:10px;">当前</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-06-04 16:00 安全 安全 </div> </li> </ul> </div> </div> <div id="tab-security" class="detail-content"> <div class="detail-section"> <h2>安全检测</h2> <div class="sec-grid"> <div class="sec-card"> <h4>腾讯云安全 (Keen)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://tix.qq.com/search/skill?keyword=94303f245c71eb3390e143c88433cd39" target="_blank">查看报告</a> </div> <div class="sec-card"> <h4>腾讯云安全 (Sanbu)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://static.cloudsec.tencent.com/html-report-v2/2026/06/04/521239_4a6b970f3c4f5959beb060d2dda86536.html?q-sign-algorithm=sha1&q-ak=AKID8JMG1bzBC1dz96qNhssfFftujT1NCoFi&q-sign-time=1783181615%3B1814717615&q-key-time=1783181615%3B1814717615&q-header-list=host&q-url-param-list=&q-signature=4867757d1691d90df395788d9d09f33a6291eea3" target="_blank">查看报告</a> </div> </div> </div> </div> <!-- Recommended Skills --> <div style="margin-top:24px;"> <h2 style="font-size:18px;font-weight:600;margin-bottom:16px;">🔗 相关推荐</h2> <div class="rec-grid"> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">it-ops-security</span> <h3><a href="/s/free-ride">Free Ride - Unlimited free AI</a></h3> <div class="rec-owner">shaivpidadi</div> <div class="rec-desc">管理OpenClaw的OpenRouter免费AI模型,自动按质量排名模型,配置速率限制备用方案,并更新opencla...</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 472</span> <span style="color:#5b6abf;">📥 78,761</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">it-ops-security</span> <h3><a href="/s/openclaw-backup">OpenClaw Backup</a></h3> <div class="rec-owner">alex3alex</div> <div class="rec-desc">备份与恢复 OpenClaw 数据。适用于创建备份、设置自动备份计划、从备份恢复或管理备份轮转。处理 ~/.openclaw 目录归档并包含适当的排除规则。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 90</span> <span style="color:#5b6abf;">📥 31,176</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">it-ops-security</span> <h3><a href="/s/1password">1password</a></h3> <div class="rec-owner">steipete</div> <div class="rec-desc">设置和使用 1Password CLI (op)。适用于:安装 CLI、启用桌面应用集成、登录(单/多账户)、通过 op 读取/注入/运行密钥。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 53</span> <span style="color:#5b6abf;">📥 31,956</span> </div> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded',function(){ document.querySelectorAll('.detail-tab').forEach(function(btn){ btn.addEventListener('click',function(e){ var tab = this.getAttribute('data-tab'); document.querySelectorAll('.detail-tab').forEach(function(b){b.classList.remove('active')}); document.querySelectorAll('.detail-content').forEach(function(c){c.classList.remove('active')}); this.classList.add('active'); var el = document.getElementById('tab-'+tab); if(el) el.classList.add('active'); }); }); }); </script> <div class="footer"> <p>Skill工具集 © 2026</p> </div></body> </html>