这篇项目记录用来整理 Web-Analyzer 的整体定位、核心功能、项目结构和当前限制。


1. 项目定位

Web-Analyzer 是一个轻量级网页 AI 分析工具。

它的核心作用是:

输入一个网页链接,系统自动抓取网页内容,然后调用大模型生成网页总结或自定义分析报告。

适合用来快速理解:

  • 文章
  • 官网
  • 产品页
  • 新闻页
  • 竞品页面
  • 技术文档
  • 商业介绍页

2. 本地项目入口

项目目录:

H:\code\web_analyzer-gpt\WebAnalyzer

3. 核心功能

3.1 输入网页链接

用户在首页输入一个网页 URL,系统保存链接后进入分析模式选择页。

3.2 快速总结

选择“快速总结”后,系统会自动完成以下流程:

  • 抓取网页标题
  • 抽取网页正文
  • 调用大模型
  • 返回网页内容总结

这个功能适合快速了解一个网页的大致内容。

3.3 自定义分析

用户可以输入自己的分析需求,例如:

分析这个产品页的商业模式、目标用户和潜在风险

系统会把以下内容一起发送给大模型:

网页标题
网页正文
用户的自定义分析需求

然后让 AI 按照指定角度输出分析结果。

3.4 历史记录

每次分析完成后,系统会保存历史记录。

保存内容包括:

网页 URL
网页标题
自定义需求
AI 分析结果

历史数据保存在 SQLite 数据库中:

WebAnalyzer/history.db

历史表结构:

history (
  id,
  url,
  title,
  personality,
  summary
)

4. 项目结构

WebAnalyzer/
  analyzer_core.py      # 网页抓取与 AI 调用核心逻辑
  database.py           # SQLite 历史记录数据库
  routes.py             # Flask 路由
  history.db            # 本地历史记录数据库
  templates/
    webanalyzer.html    # WebAnalyzer 首页
    select.html         # 分析模式选择页
    custom.html         # 自定义分析输入页
    result.html         # 分析结果页

5. 主要路由

| 路由               方法           作用                   
| ----------------- | ---------- | -----------------------    
| `/webanalyzer`    | GET        | WebAnalyzer 首页        
| `/select`         | GET / POST | 选择快速总结或自定义分析  
| `/custom`         | GET / POST | 输入自定义分析需求     
| `/analyze`        | POST       | 执行网页抓取与 AI 分析  
| `/delete_history` | POST       | 清空历史记录 
| ----------------- | ---------- | ----------------------       

6. AI 配置

WebAnalyzer 使用项目根目录下的 .env 文件配置大模型。

示例配置:

LLM_API_KEY=你的API_KEY
LLM_BASE_URL=https://api.deepseek.com/v1
LLM_MODEL=deepseek-chat
LLM_TEMPERATURE=1

项目支持 OpenAI-compatible API,因此可以切换不同模型服务商,例如:

-OpenAI
-DeepSeek
-Moonshot / Kimi
-其他兼容 /chat/completions 的服务商

7. 网页抓取逻辑

核心文件:

WebAnalyzer/analyzer_core.py

抓取流程如下:

使用 trafilatura.fetch_url() 获取网页正文
使用 BeautifulSoup 获取网页 <title>
如果网页无法抓取且没有标题,则返回失败
如果抓取成功,则调用 AI 生成分析结果

8. 分析结果处理

AI 返回的 Markdown 会被转换成 HTML:

markdown.markdown(result, extensions=["tables", "fenced_code"])

因此结果页支持以下 Markdown 排版:

标题
列表
表格
代码块
基础 Markdown 格式

9. 当前优点

结构简单,容易理解
不依赖复杂前端框架
使用 Flask + Jinja2,适合学习
支持快速总结
支持自定义分析角度
支持历史记录
大模型配置和其他项目共用 .env
可以切换不同 AI 服务商

10. 当前限制

没有登录系统
历史记录只保存在本地 SQLite
遇到反爬严格的网站时,正文可能抓取失败
部分旧中文文案存在乱码,后续可以统一修复
AI 分析是同步请求,网页较长或模型响应慢时需要等待

11. 一句话总结

WebAnalyzer 是一个基于 Flask 的轻量级网页 AI 分析工具。

它的工作流程是:

用户输入链接 → 系统抓取网页正文 → 调用大模型 → 生成快速总结或自定义分析报告。