Aucune description

mrh 725d0b4b96 前后端新增停止 il y a 9 mois
config 50dcc6cd81 修改代理,使用说明,新增文件便于打包发布 il y a 9 mois
database 2b701092ff 删除 API 代码,准备改为 celery 的方式 il y a 10 mois
fontend 49e4208783 完成后端订阅API,待前端完成请求逻辑 il y a 9 mois
mylib cf02362e19 完成Windows2系统的正常启动,不过浏览器路径启动还未测试 il y a 9 mois
tests 1835feda6a 导出数据,后续测试,临时保存 il y a 9 mois
ui 9c95ad65e2 前后端新增停止 il y a 9 mois
utils 50dcc6cd81 修改代理,使用说明,新增文件便于打包发布 il y a 9 mois
worker 2962b94f63 新增使用说明,新增 client 参数 il y a 9 mois
.clinerules 9712124875 基于上下文管理器完成谷歌搜索,用的测试指纹浏览器 il y a 10 mois
.clinerules-code a78d48b434 完成 Google search 关键词回车搜索 il y a 10 mois
.env 50dcc6cd81 修改代理,使用说明,新增文件便于打包发布 il y a 9 mois
.gitignore 49e4208783 完成后端订阅API,待前端完成请求逻辑 il y a 9 mois
.gitmodules 2cec5ceca4 add readme.md il y a 10 mois
CONVENTIONS.md faae2ca9f0 完成 dp 搜索和翻页 il y a 10 mois
__init__.py 78e12d7b83 加入 dristion page 后关键词搜索 il y a 10 mois
architecture.md 1835feda6a 导出数据,后续测试,临时保存 il y a 9 mois
cmd_python.bat 50dcc6cd81 修改代理,使用说明,新增文件便于打包发布 il y a 9 mois
poetry.lock cf02362e19 完成Windows2系统的正常启动,不过浏览器路径启动还未测试 il y a 9 mois
pyproject.toml cf02362e19 完成Windows2系统的正常启动,不过浏览器路径启动还未测试 il y a 9 mois
readme.md cf02362e19 完成Windows2系统的正常启动,不过浏览器路径启动还未测试 il y a 9 mois
run_manager.bat cf02362e19 完成Windows2系统的正常启动,不过浏览器路径启动还未测试 il y a 9 mois
run_multi_proxy.bat cf02362e19 完成Windows2系统的正常启动,不过浏览器路径启动还未测试 il y a 9 mois
使用说明.txt cf02362e19 完成Windows2系统的正常启动,不过浏览器路径启动还未测试 il y a 9 mois

readme.md

项目概述

本项目是一个分布式任务处理系统,专注于从网页中提取数据并进行 HTML 转换。它采用模块化设计,支持多机分布部署,确保任务的可追踪性和实时性。

技术栈

  • 编程语言: Python
  • 任务调度: Celery
  • 数据存储: SQLite
  • HTML 转换: Pandoc, 自定义转换器
  • 搜索引擎集成: 浏览器驱动(基于 DrissionPage 和 ChromiumPage)
  • 网络支持: 解决 Cloudflare 人机验证 ; 自建代理池

功能特点

  1. 分布式任务处理:

    • 使用 Celery 实现分布式任务调度。
    • Worker 可在多台机器上部署,支持长时间运行的任务。
  2. HTML 转换:

    • 提供基础类 ConverterBase,用于处理 HTML 转换任务。
    • 支持提取内容、修复链接、过滤 Markdown 、转换成 docx 等功能。
  3. 谷歌搜索功能:

    • 使用自定义浏览器驱动(基于 DrissionPageChromiumPage)模拟浏览器行为。
    • 支持动态代理配置和无头模式。
    • 通过 XPath 定位搜索框并输入关键词。
    • 处理分页逻辑,支持滚动加载和点击“下一页”按钮。
    • 提取搜索结果的标题、URL 和内容,并存储到数据库中。
    • 支持保存 HTML 页面以供后续分析。
  4. 数据库交互:

    • 使用 SQLModel 与 SQLite 数据库交互,存储和检索搜索结果及转换结果。
  5. 日志记录:

    • 使用自定义日志工具记录关键操作,便于排查问题。

项目结构

.
├── config/                # 配置文件
├── database/              # 数据库相关代码
├── tests/                 # 测试代码
├── utils/                 # 工具类和辅助函数
├── worker/                # 核心业务逻辑
│   ├── celery/            # Celery 任务定义
│   ├── html_convert/      # HTML 转换模块
│   └── search_engine/     # 浏览器驱动
└── readme.md              # 项目说明文档

价值亮点

  • 高内聚低耦合: 模块间依赖关系清晰,易于扩展。
  • 实时性与任务恢复: 支持任务进度的实时监控和失败点恢复。
  • 灵活的数据处理: 支持多种数据源和转换方式,适应不同需求。

开始使用

  1. 安装依赖:

    poetry install
    
  2. 启动 Celery Worker:

    celery -A worker.celery.app worker --loglevel=info
    
  3. 运行主程序:

    python main.py
    

    pack

    conda pack -n crawl_env -o crawl_env.tar.gz
    Remove-Item -Path crawl_env
    mkdir -p crawl_env
    tar -xzf crawl_env.tar.gz -C crawl_env
    Remove-Item -Path crawl_env.tar.gz
    D:\Program\7-Zip\7z.exe a -tzip -mmt -mx3 google_crawler.zip *.bat config database crawl_env download mylib script tests utils worker 使用说明.txt -xr!*/pycache/*
    # 使用 tar 压缩可能更快(其实也没多快),Windows11 以上都支持 tar.gz 格式
    tar -czvf google_crawler.tar.gz *.bat config database crawl_env download mylib script tests utils worker 使用说明.txt --exclude='*/__pycache__'