⌛ 本弹窗5秒后关闭。
爬虫项目——基础说明

为申请校级实验室开放基金所做的项目 ——— 点击访问,若访问失败为正常现象,因为域名还没有进行ICP备案,可以使用梯子访问。暂不开放ip访问功能。
对比专业爬虫项目还是略有粗糙,目前该项目将持续维护,当做完报告将暂停维护,并于 github 开源代码。

🏗️ NYLG 系统架构说明

本文档详细说明NYLG网络爬虫系统的前后端连接方式、各组件作用以及整体架构设计。

🌐 系统整体架构

┌─────────────────┐    HTTP/API   ┌─────────────────┐
│                 │ ◄──────────── │                 │
│    前端 Vue3    │                │  后端 (Flask)   │
│                 │ ────────────► │                 │
└─────────────────┘               └─────────────────┘
         │                                 │
         │                                 │
         ▼                                 ▼
┌────────────────┐              ┌─────────────────┐
│   用户界面      │              │   爬虫引擎       │
│   - 操作交互    │              │   - 数据采集     │
│   - 结果展示    │              │   - 内容解析     │
│   - 数据导出    │              │   - 错误处理     │
└────────────────┘              └─────────────────┘

🔗 前后端连接机制

1. 通信协议

HTTP RESTful API

  • 协议:HTTP/HTTPS
  • 数据格式:JSON
  • 请求方式:GET、POST
  • 端口配置
    • 后端Flask:5000端口
    • 前端Vue开发服务器:5173端口

CORS跨域处理

# app.py
from flask_cors import CORS
CORS(app)  # 允许所有域名跨域访问

2. API接口设计

核心接口列表

接口路径 方法 功能 前端调用位置
/api/crawl POST 执行爬取任务 Crawler.vue
/api/spiders GET 获取爬虫列表 Crawler.vue
/api/results GET 获取结果列表 Crawler.vue
/api/export/{id}/{format} GET 导出数据 Crawler.vue
/api/task/{id} GET 查询任务状态 Crawler.vue
/api/stats GET 获取统计信息 Home.vue

数据流向图

前端发起请求 → 后端接收处理 → 调用爬虫引擎 → 返回结果 → 前端展示
     │            │            │            │         │
     ▼            ▼            ▼            ▼         ▼
  用户操作      路由分发      数据采集     JSON响应   界面更新

3. 请求响应格式

标准请求格式

// 前端发送请求
const response = await axios.post('/api/crawl', {
  spider_type: 'baidu',
  keyword: '搜索关键词',
  max_results: 10
})

标准响应格式

{
  "success": true,
  "message": "操作成功",
  "data": [...],
  "task_id": 123,
  "timestamp": "2024-01-01 12:00:00"
}

🎯 前端架构详解

1. Vue3 组件架构

App.vue (根组件)
├── router-view (路由出口)
│   ├── Home.vue (首页)
│   ├── Crawler.vue (爬虫页面)
│   ├── About.vue (关于页面)
│   └── Docs.vue (文档页面)
└── Navigation (导航组件)

2. 前端技术栈

核心框架

  • Vue 3:响应式前端框架
  • Vue Router:单页面应用路由
  • Axios:HTTP客户端库

UI组件库

  • Element Plus:企业级UI组件
  • Element Icons:图标库

样式技术

  • CSS3:现代样式特性
  • Flexbox/Grid:布局技术
  • CSS Variables:动态样式变量

3. 前端职责

用户交互层

  • 🎨 界面渲染:组件化界面展示
  • 🖱️ 用户操作:表单输入、按钮点击、页面导航
  • 📱 响应式适配:多设备兼容

数据处理层

  • 📡 API调用:与后端通信
  • 🔄 状态管理:组件数据状态
  • 📊 智能展示:根据爬取类型选择最适合的展示方式
    • 搜索结果:表格格式展示
    • URL内容:卡片式内容展示
  • 🎨 内容格式化:智能识别和美化显示图片、链接等元素
  • 🔗 交互功能:链接跳转、内容直接展示
  • 🎨 UI设计:全面圆角化设计,统一视觉风格
  • 代码优化:简化组件结构,提升性能

业务逻辑层

  • 表单验证:输入参数校验
  • 🔄 异步处理:加载状态管理
  • 📤 数据导出:结果文件下载

⚙️ 后端架构详解

1. Flask应用架构

app.py (主应用)
├── 路由层 (Routes)
│   ├── 页面路由 (/, /crawler, /docs, /about)
│   └── API路由 (/api/*)
├── 服务层 (Services)
│   ├── CrawlerService (爬虫服务)
│   └── DataProcessor (数据处理)
└── 数据层 (Data)
    ├── 内存存储 (tasks, results)
    └── 文件系统 (导出文件)

2. 后端技术栈

核心框架

  • Flask:轻量级Web框架
  • Flask-CORS:跨域资源共享

数据处理

  • Pandas:数据分析库
  • BeautifulSoup:HTML解析
  • Requests/urllib:HTTP请求

文件处理

  • CSV:表格数据导出
  • JSON:结构化数据处理
  • Markdownify:HTML转Markdown

3. 后端职责

API服务层

  • 🌐 HTTP服务:处理前端请求
  • 🔀 路由分发:请求路径映射
  • 📝 数据验证:请求参数校验
  • 🔒 错误处理:异常捕获和响应

爬虫引擎层

  • 🕷️ 多爬虫支持:百度、B站、CSDN、URL
  • 🔍 智能内容提取
    • 文本内容智能识别和提取
    • 图片信息自动收集和处理
    • 编码格式自动检测和转换
  • 🔄 任务管理:异步任务处理
  • 📊 结果格式化:统一数据结构
  • 🎯 结构化输出:将原始数据转换为前端友好的JSON格式

数据服务层

  • 💾 数据存储:内存缓存机制
  • 📤 文件导出:多格式数据导出
  • 📈 统计分析:使用情况统计

🔄 数据流程详解

1. 爬取任务流程

用户操作 → 前端验证 → API请求 → 后端处理 → 爬虫执行 → 数据返回 → 界面更新
    │         │         │         │         │         │         │
    ▼         ▼         ▼         ▼         ▼         ▼         ▼
选择爬虫   参数校验   POST请求  路由分发  内容抓取  JSON响应  表格展示
输入参数   表单验证   /api/crawl 调用服务  数据解析  结果数据  状态更新

2. 具体实现示例

前端发起请求

// Crawler.vue
async executeCrawl() {
  this.isLoading = true
  try {
    const response = await axios.post('/api/crawl', {
      spider_type: this.selectedSpider,
      ...this.getParams()
    })
    
    if (response.data.success) {
      this.results = response.data.results
      ElMessage.success('爬取成功')
    }
  } catch (error) {
    ElMessage.error('爬取失败')
  } finally {
    this.isLoading = false
  }
}

后端处理请求

# app.py
@app.route('/api/crawl', methods=['POST'])
def crawl():
    try:
        data = request.get_json()
        spider_type = data.get('spider_type')
        
        # 执行爬虫任务
        results, error = crawler_service.execute_search(
            spider_type, 
            data.get('keyword'), 
            data.get('max_results')
        )
        
        if error:
            return jsonify({'success': False, 'message': error})
        
        return jsonify({
            'success': True, 
            'results': results,
            'message': '爬取成功'
        })
        
    except Exception as e:
        return jsonify({'success': False, 'message': str(e)})

🗂️ 文件组织结构

前端文件结构

frontend/vue/
├── src/
│   ├── views/          # 页面组件
│   │   ├── Home.vue
│   │   ├── Crawler.vue
│   │   ├── About.vue
│   └── └── Docs.vue
│   ├── assets/         # 静态资源
│   │   └── global.css
│   ├── router/         # 路由配置
│   │   └── index.js
│   ├── App.vue         # 根组件
│   └── main.js         # 入口文件
├── public/             # 公共文件
└── package.json        # 依赖配置

后端文件结构

后端根目录/
├── app.py              # Flask主应用
├── 测试/               # 爬虫模块
│   ├── baidu.py
│   ├── bilibili.py
│   ├── csdn.py
│   └── url.py
├── frontend/           # 前端文件
│   ├── templates/      # HTML模板
│   └── static/         # 静态资源
└── requirements.txt    # Python依赖

🔧 配置和部署

1. 开发环境配置

前端开发服务器

cd frontend/vue
npm install
npm run dev  # 启动开发服务器 (端口5173)

后端开发服务器

pip install -r requirements.txt
python app.py  # 启动Flask服务器 (端口5000)

2. 生产环境部署

前端构建

cd frontend/vue
npm run build  # 构建生产版本

后端部署

# 使用Gunicorn部署
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app

3. 环境变量配置

# 开发环境
FLASK_ENV=development
FLASK_DEBUG=True

# 生产环境
FLASK_ENV=production
FLASK_DEBUG=False

🛡️ 安全考虑

1. 前端安全

  • 输入验证:防止XSS攻击
  • HTTPS:加密数据传输
  • CSP:内容安全策略

2. 后端安全

  • 参数验证:防止SQL注入
  • CORS配置:限制跨域访问
  • 错误处理:避免信息泄露

3. 爬虫安全

  • 请求限制:防止被反爬
  • User-Agent:模拟正常浏览器
  • 超时设置:避免长时间阻塞

📊 性能优化

1. 前端优化

  • 组件懒加载:按需加载页面
  • 图片优化:使用SVG矢量图
  • 缓存策略:合理使用浏览器缓存

2. 后端优化

  • 异步处理:非阻塞任务执行
  • 内存管理:及时清理无用数据
  • 连接池:复用HTTP连接

3. 爬虫优化

  • 并发控制:合理设置并发数
  • 重试机制:失败自动重试
  • 缓存机制:避免重复请求

🔍 监控和调试

1. 前端调试

  • Vue DevTools:组件状态调试
  • 浏览器控制台:网络请求监控
  • Source Map:源码调试

2. 后端调试

  • Flask调试模式:详细错误信息
  • 日志记录:关键操作记录
  • 性能分析:请求响应时间

3. 系统监控

  • 健康检查:服务可用性监控
  • 错误统计:异常情况统计
  • 使用分析:用户行为分析

💡 总结:NYLG系统采用前后端分离架构,通过RESTful API实现数据交互,前端负责用户界面和交互,后端负责数据处理和爬虫执行,整体设计简洁高效,易于维护和扩展。


🛠️ NYLG 自定义开发指南

本文档将指导您如何自定义界面、修改后台功能,以及扩展系统功能。

🎨 界面自定义

1. 修改整体配色方案

全局样式文件

文件位置frontend/vue/src/assets/global.css

/* 修改主色调 */
:root {
  --primary-color: #your-color;     /* 主色调 */
  --secondary-color: #your-color;   /* 辅助色 */
  --accent-color: #your-color;      /* 强调色 */
}

/* 修改背景渐变 */
body {
  background: linear-gradient(135deg, #your-color1, #your-color2);
}

Vue组件样式

每个Vue组件都有独立的样式区域,可以单独修改:

  • src/views/Home.vue – 主页样式
  • src/views/Crawler.vue – 爬虫页面样式
  • src/views/About.vue – 关于页面样式
  • src/views/Docs.vue – 文档页面样式

2. 修改布局结构

导航栏自定义

文件位置frontend/vue/src/App.vue

<!-- 添加新的导航项 -->
<router-link to="/your-page" class="nav-link">
  <el-icon><YourIcon /></el-icon>
  您的页面
</router-link>

页面布局修改

在各个Vue组件中修改HTML结构:

<template>
  <div class="your-custom-class">
    <!-- 您的自定义内容 -->
  </div>
</template>

3. 添加新的UI组件

安装新组件库

cd frontend/vue
npm install your-component-library

在组件中使用

<script>
import { YourComponent } from 'your-component-library'

export default {
  components: {
    YourComponent
  }
}
</script>

添加新的内容展示组件

<!-- 在 Crawler.vue 中添加新组件 -->
<template>
  <!-- URL爬取专用展示组件示例 -->
  <div v-if="selectedSpider === 'url'" class="url-content-display">
    <div v-for="(result, index) in results" :key="index" class="url-result-item">
      <div class="url-result-header">
        <h3 class="url-title">
          <a :href="result.url" target="_blank">{{ result.title }}</a>
        </h3>
        <div class="url-meta">
          <span>📏 内容长度: {{ result.length }} 字符</span>
          <span>⏰ 爬取时间: {{ result.crawl_time }}</span>
        </div>
      </div>
      <div class="content-preview" :class="{ 'expanded': result.expanded }">
        <div class="content-text" v-html="formatContent(result.content)"></div>
      </div>
      <!-- 折叠/展开按钮 -->
      <el-button @click="toggleContent(result)">展开/收起</el-button>
    </div>
  </div>
</template>

UI设计规范

圆角设计标准

/* 小元素圆角 */
.small-element {
  border-radius: 12px;
}

/* 中等元素圆角 */
.medium-element {
  border-radius: 16px;
}

/* 大元素圆角 */
.large-element {
  border-radius: 20px;
}

/* 特大元素圆角 */
.extra-large-element {
  border-radius: 24px;
}

/* 按钮圆角 */
.button-element {
  border-radius: 28px;
}

简化的内容展示

<!-- 直接展示内容,无需折叠功能 -->
<div class="url-content-wrapper">
  <div class="content-text" v-html="formatContent(content)"></div>
</div>

🔧 后台功能修改

1. 添加新的爬虫类型

步骤1:创建爬虫类

文件位置测试/your_spider.py

class YourSpider:
    def __init__(self):
        self.name = "您的爬虫"
    
    def search(self, keyword, max_results=10):
        """搜索方法"""
        try:
            # 您的爬虫逻辑
            results = []
            return results, None
        except Exception as e:
            return None, str(e)

步骤2:注册爬虫

文件位置app.py

# 导入您的爬虫
from your_spider import YourSpider

# 在CrawlerService类中添加
class CrawlerService:
    def __init__(self):
        self.spiders = {
            # 现有爬虫...
            'your_spider': {'name': '您的爬虫', 'class': YourSpider, 'type': 'search'}
        }

步骤3:前端配置

文件位置frontend/vue/src/views/Crawler.vue

spiders: [
  // 现有爬虫...
  {
    type: 'your_spider',
    name: '您的爬虫',
    description: '爬虫描述',
    icon: 'YourIcon'
  }
]

2. 修改API接口

添加新的API端点

文件位置app.py

@app.route('/api/your-endpoint', methods=['POST'])
def your_endpoint():
    try:
        data = request.get_json()
        # 您的处理逻辑
        return jsonify({'success': True, 'data': result})
    except Exception as e:
        return jsonify({'success': False, 'message': str(e)}), 500

修改现有接口

找到对应的路由函数,修改处理逻辑:

  • /api/crawl – 爬取接口
  • /api/results – 结果查询接口
  • /api/export – 导出接口

3. 数据库集成

添加数据库支持

pip install sqlalchemy flask-sqlalchemy

配置数据库

文件位置app.py

from flask_sqlalchemy import SQLAlchemy

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///crawler.db'
db = SQLAlchemy(app)

class CrawlResult(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    spider_type = db.Column(db.String(50))
    data = db.Column(db.Text)
    created_at = db.Column(db.DateTime)

📦 功能扩展

1. 添加数据处理功能

数据清洗

文件位置utils/data_processor.py(新建)

class DataProcessor:
    @staticmethod
    def clean_text(text):
        """文本清洗"""
        # 您的清洗逻辑
        return cleaned_text
    
    @staticmethod
    def format_data(data):
        """数据格式化"""
        # 您的格式化逻辑
        return formatted_data

2. 添加定时任务

安装调度器

pip install apscheduler

配置定时任务

文件位置app.py

from apscheduler.schedulers.background import BackgroundScheduler

scheduler = BackgroundScheduler()
scheduler.add_job(
    func=your_scheduled_function,
    trigger="interval",
    seconds=3600  # 每小时执行一次
)
scheduler.start()

3. 添加用户认证

安装认证库

pip install flask-login flask-jwt-extended

配置认证

from flask_login import LoginManager, login_required

login_manager = LoginManager()
login_manager.init_app(app)

@app.route('/api/protected')
@login_required
def protected_route():
    return jsonify({'message': '需要登录访问'})

🚀 部署配置

1. 生产环境配置

环境变量配置

文件位置.env(新建)

FLASK_ENV=production
SECRET_KEY=your-secret-key
DATABASE_URL=your-database-url

生产环境启动

# 安装生产服务器
pip install gunicorn

# 启动应用
gunicorn -w 4 -b 0.0.0.0:5000 app:app

2. Docker部署

Dockerfile

FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]

docker-compose.yml

version: '3.8'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    environment:
      - FLASK_ENV=production

🔍 调试技巧

1. 前端调试

# 开发模式启动
cd frontend/vue
npm run dev

# 查看控制台日志
# 在浏览器开发者工具中查看Network和Console

2. 后端调试

# 启用调试模式
app.run(debug=True)

# 添加日志
import logging
logging.basicConfig(level=logging.DEBUG)
app.logger.debug('调试信息')

3. 常见问题解决

CORS错误

from flask_cors import CORS
CORS(app, origins=['http://localhost:3000'])

编码问题

# 确保文件编码为UTF-8
# -*- coding: utf-8 -*-

📚 推荐资源

学习资料

开发工具

  • VS Code:推荐的代码编辑器
  • Vue DevTools:Vue调试工具
  • Postman:API测试工具
  • Git:版本控制工具

💡 提示:修改代码前请备份原文件,建议使用Git进行版本控制。如有问题,可以参考项目中的现有代码实现。


🗂️项目文件介绍

本文档详细介绍NYLG爬虫工具项目中所有文件的作用,以及哪些文件是必要的,哪些可以删除。

📁 核心文件(必要文件)

1. 后端核心文件

  • app.py – Flask主应用文件,包含所有API接口和路由
    • 作用:Web服务器入口,处理HTTP请求,特别优化URL爬取数据结构化处理
    • 必要性:⭐⭐⭐⭐⭐ 核心文件,不可删除
  • crawler_main.py – 爬虫核心逻辑
    • 作用:实现各种爬虫的具体逻辑
    • 必要性:⭐⭐⭐⭐⭐ 核心文件,不可删除
  • requirements.txt – Python依赖包列表
    • 作用:定义项目所需的Python包,包含Flask、requests、beautifulsoup4等
    • 必要性:⭐⭐⭐⭐⭐ 部署必需,不可删除
    • 内容:核心Web框架、HTTP请求库、数据处理库等

前端文件(Vue版本 – 推荐使用)

1. Vue项目根目录

  • frontend/vue/package.json – Node.js依赖配置
    • 作用:定义前端项目依赖和脚本
    • 必要性:⭐⭐⭐⭐⭐ Vue项目必需
  • frontend/vue/vite.config.js – Vite构建配置
    • 作用:配置前端构建工具
    • 必要性:⭐⭐⭐⭐⭐ Vue项目必需
  • frontend/vue/index.html – HTML入口文件
    • 作用:Vue应用的HTML模板
    • 必要性:⭐⭐⭐⭐⭐ Vue项目必需

2. Vue源代码

  • frontend/vue/src/main.js – Vue应用入口
    • 作用:初始化Vue应用
    • 必要性:⭐⭐⭐⭐⭐ Vue项目必需
  • frontend/vue/src/App.vue – 根组件
    • 作用:应用的主要布局和导航
    • 必要性:⭐⭐⭐⭐⭐ Vue项目必需
  • frontend/vue/src/router/index.js – 路由配置
    • 作用:定义页面路由
    • 必要性:⭐⭐⭐⭐⭐ Vue项目必需
  • frontend/vue/src/style/global.css – 全局样式
    • 作用:定义全局CSS样式
    • 必要性:⭐⭐⭐⭐ 样式必需

3. Vue页面组件

  • frontend/vue/src/views/Home.vue – 首页组件
    • 作用:项目介绍和功能展示
    • 必要性:⭐⭐⭐⭐ 主要页面
  • frontend/vue/src/views/Crawler.vue – 爬虫工具页
    • 作用:爬虫功能的主要界面
    • 必要性:⭐⭐⭐⭐⭐ 核心功能页面
  • frontend/vue/src/views/Docs.vue – 文档页
    • 作用:使用说明和API文档
    • 必要性:⭐⭐⭐ 用户帮助
  • frontend/vue/src/views/About.vue – 关于页
    • 作用:项目信息和联系方式
    • 必要性:⭐⭐ 可选页面

📁 旧版文件(可选删除)

1. 静态HTML版本(已被Vue版本替代)

  • frontend/static/ – 静态资源目录
    • 作用:旧版HTML的CSS、JS、图片文件
    • 必要性:⭐ 可以删除(如果只使用Vue版本)
  • frontend/templates/ – HTML模板目录
    • 作用:旧版的HTML页面文件
    • 必要性:⭐ 可以删除(如果只使用Vue版本)

📁 前端文件详细说明

1. Vue 组件文件

  • App.vue: 主应用组件,包含温馨风格的导航栏和路由视图
  • Home.vue: 首页组件,采用渐变背景和毛玻璃效果展示项目特色
  • Crawler.vue: 爬虫操作页面,重新设计的布局包含智能卡片选择、参数配置、结果展示
  • About.vue: 关于页面,温馨色调展示项目信息和技术栈
  • Docs.vue: 文档页面,柔和设计提供API文档和使用说明

2. 样式文件

  • global.css: 全局样式文件,定义温馨暖色调主题、毛玻璃效果、渐变背景
  • main.js: Vue应用入口文件,配置路由和组件库

📁 界面设计特色

1. 温馨暖色调设计

  • 🎨 配色方案: 粉色系暖色调(#fff5f0 到 #e6a8d0)营造舒适环境
  • 💎 毛玻璃效果: backdrop-filter 创造现代化视觉层次
  • 🌈 渐变背景: 多层次渐变色彩,柔和过渡
  • 🔘 圆角设计: 24-28px圆角,柔和友好的视觉感受

2. 用户体验优化

  • 流畅动画: cubic-bezier缓动函数,自然的过渡效果
  • 🎯 智能反馈: 悬停效果、状态指示、选中标识
  • 📊 数据可视化: 中文字段显示、序号排序、点击链接
  • 🚀 交互优化: 卡片选择动画、加载状态、结果统计

3. 响应式设计

  • 📱 多设备适配: 桌面、平板、手机完美显示
  • 🔄 自适应布局: 弹性网格系统,智能调整
  • 📏 字体缩放: 相对单位确保可读性

📁 技术实现亮点

1. 网页爬取功能优化

  • 智能内容提取: 使用BeautifulSoup智能识别网页主要内容区域
  • 图片信息提取: 自动识别和提取网页中的所有图片,包含描述和链接
  • 编码自动检测: 支持多种编码格式的自动检测和转换
  • 结构化数据: 将爬取结果转换为前端友好的JSON格式
  • 完整内容保留: 保持网页原有格式,支持完整内容展示
  • 错误处理: 完善的异常处理机制,提供详细的错误信息
  • UI设计优化: 全面圆角化设计,提升视觉美感,统一的圆角半径规范(12px-28px),简化的内容展示,移除复杂的折叠机制,优化的卡片布局和间距设计

2.数据显示优化

  • 字段映射: 将英文字段名映射为中文显示名称
  • 专用内容展示: URL爬取采用卡片式布局,替代表格格式
  • 内容格式化: 智能识别和美化显示图片、链接等元素
  • 折叠展开功能: 长内容支持折叠/展开,提升阅读体验
  • 智能过滤: 自动隐藏不必要的技术字段
  • 导出美化: 重新设计导出按钮样式,提升用户体验
  • 响应式设计: 在不同设备上都有良好的显示效果

3. 前端技术栈

  • Vue 3: 组合式API,响应式数据管理
  • Element Plus: 丰富的UI组件,表格、表单、按钮等
  • Vue Router: 单页面应用路由,平滑页面切换
  • Axios: Promise-based HTTP客户端,API请求管理
  • Vite: 快速构建工具,热模块替换(HMR)
  • CSS3: 现代化样式特性,渐变、动画、毛玻璃效果

4. 设计系统

  • 色彩体系: 统一的暖色调色板,和谐搭配
  • 组件复用: 全局样式类,一致的视觉语言
  • 动画库: 自定义关键帧动画,提升交互体验
  • 响应式: 移动优先的设计理念

具体文件:

  • frontend/templates/index.html – 旧版首页
  • frontend/templates/crawler.html – 旧版爬虫页
  • frontend/templates/docs.html – 旧版文档页
  • frontend/templates/about.html – 旧版关于页
  • frontend/static/css/style.css – 旧版样式
  • frontend/static/js/main.js – 旧版JavaScript

📁 项目配置文件

  • README.md – 项目说明文档
    • 作用:项目介绍、安装和使用说明
    • 必要性:⭐⭐⭐⭐ 重要文档
  • 宝塔部署清单.md – 部署文件清单
    • 作用:列出宝塔部署所需的文件和步骤概览
    • 必要性:⭐⭐⭐⭐⭐ 部署必需,生产环境必备
  • 宝塔部署详细指南.md – 详细部署指南
    • 作用:完整的宝塔面板部署步骤和配置说明
    • 必要性:⭐⭐⭐⭐⭐ 部署必需,生产环境必备
  • 文件介绍.md – 本文件
    • 作用:说明各文件的作用
    • 必要性:⭐⭐ 参考文档

📁 运行时文件

  • crawler_results/ – 爬取结果存储目录
    • 作用:存储爬虫获取的数据
    • 必要性:⭐⭐⭐⭐ 功能必需(目录可为空)
  • __pycache__/ – Python缓存目录
    • 作用:Python字节码缓存
    • 必要性:❌ 可以删除(运行时自动生成)
  • frontend/vue/node_modules/ – Node.js依赖目录
    • 作用:存储前端依赖包
    • 必要性:⭐⭐⭐⭐ Vue项目必需(可通过npm install重新生成)

📁 开发环境文件

  • .venv/.venv1/ – Python虚拟环境
    • 作用:隔离Python依赖
    • 必要性:⭐⭐⭐ 开发推荐(可重新创建)
  • .idea/ – PyCharm IDE配置
    • 作用:IDE项目配置
    • 必要性:❌ 可以删除(IDE特定)
  • .gitignore – Git忽略文件配置
    • 作用:指定Git不跟踪的文件
    • 必要性:⭐⭐⭐ 版本控制推荐

🗑️ 可以安全删除的文件

如果你只使用Vue前端版本,可以删除以下文件:

# 删除旧版HTML前端  
rm -rf frontend/static/  
rm -rf frontend/templates/  
  
# 删除开发缓存  
rm -rf __pycache__/  
rm -rf .idea/  
  
# 删除虚拟环境(可重新创建)  
rm -rf .venv/  
rm -rf .venv1/  

📋 最小化部署文件列表

如果要进行最小化部署,只需要以下文件:

1. 后端必需文件

app.py  
crawler_main.py  
scrapy_spiders.py  
requirements.txt  
crawler_results/  

2. 前端必需文件(Vue版本)

frontend/vue/  
├── src/  
├── package.json  
├── vite.config.js  
└── index.html  

3. 文档文件(推荐保留)

README.md  
文件介绍.md  

💡 建议

  1. 开发阶段:保留所有文件,便于调试和对比
  2. 生产部署:可以删除旧版HTML文件,只保留Vue版本
  3. 版本控制:使用.gitignore忽略缓存和依赖目录
  4. 备份重要:删除前请确保已备份重要数据

🔄 文件依赖关系

app.py (后端入口)  
├── crawler_main.py (爬虫逻辑)  
├── scrapy_spiders.py (Scrapy定义)  
└── frontend/vue/ (前端界面)  
    ├── src/views/Crawler.vue (调用后端API)  
    └── 其他Vue组件  

记住:删除文件前请确保理解其作用,并做好备份!

未经允许,禁止转载
如有侵权,联系删除
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
颜文字
Emoji
小恐龙
花❀
下一篇