Açıklama Yok

mrh 89864e03f4 新增视频说明 9 ay önce
config cee5551228 优化 crawl4ai 的 PDF 下载和保存逻辑。新增数据库字段 content_type 修改 html_path 改为 save_path 支持保存为 pdf 或 html ,新增 markdown 字段 9 ay önce
database 2b701092ff 删除 API 代码,准备改为 celery 的方式 10 ay önce
mylib c08a17c95f 完成 crawl4ai 使用自定义浏览器批量抓取 9 ay önce
tests cee5551228 优化 crawl4ai 的 PDF 下载和保存逻辑。新增数据库字段 content_type 修改 html_path 改为 save_path 支持保存为 pdf 或 html ,新增 markdown 字段 9 ay önce
ui cee5551228 优化 crawl4ai 的 PDF 下载和保存逻辑。新增数据库字段 content_type 修改 html_path 改为 save_path 支持保存为 pdf 或 html ,新增 markdown 字段 9 ay önce
utils c08a17c95f 完成 crawl4ai 使用自定义浏览器批量抓取 9 ay önce
worker 62c5238036 html convert 去掉 filter_md 转换成 docx 因为资源加载很慢 9 ay önce
.clinerules 9712124875 基于上下文管理器完成谷歌搜索,用的测试指纹浏览器 10 ay önce
.clinerules-code a78d48b434 完成 Google search 关键词回车搜索 10 ay önce
.env 50dcc6cd81 修改代理,使用说明,新增文件便于打包发布 9 ay önce
.gitignore 89864e03f4 新增视频说明 9 ay önce
.gitmodules 2cec5ceca4 add readme.md 10 ay önce
CONVENTIONS.md faae2ca9f0 完成 dp 搜索和翻页 10 ay önce
__init__.py 78e12d7b83 加入 dristion page 后关键词搜索 10 ay önce
architecture.md 1835feda6a 导出数据,后续测试,临时保存 9 ay önce
cmd_python.bat 50dcc6cd81 修改代理,使用说明,新增文件便于打包发布 9 ay önce
poetry.lock 0e3dcdc184 完成打包并正常运行。crawl4ai 使用自定义浏览器。html convert 还有问题 9 ay önce
pyproject.toml 0e3dcdc184 完成打包并正常运行。crawl4ai 使用自定义浏览器。html convert 还有问题 9 ay önce
readme.md 89864e03f4 新增视频说明 9 ay önce
run.bat 0e3dcdc184 完成打包并正常运行。crawl4ai 使用自定义浏览器。html convert 还有问题 9 ay önce
使用说明.txt 0e3dcdc184 完成打包并正常运行。crawl4ai 使用自定义浏览器。html convert 还有问题 9 ay önce

readme.md

项目概述

视频展示:

https://v.douyin.com/i5QRuWur/ 浏览器自动化保存数据 用deepseek写了一个自动化获取浏览器数据的程序爬取PDF,html转换成world文档

本项目是一个分布式任务处理系统,专注于从网页中提取数据并进行 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 create -p venv python=3.12 -y
conda activate G:\code\upwork\zhang_crawl_bio\venv
poetry install --no-root
scrapling install

手动修改 venv\Lib\site-packages\crawl4ai\async_crawler_strategy.py 文件中修改如下代码:

    class BrowserManager:
        def __init__(self, browser_config: BrowserConfig, logger=None):
            ...
            if self.config.use_managed_browser:
            self.managed_browser = ManagedBrowser(
                ...
                cdp_url=self.config.cdp_url, # 👈 添加此行
            )
    ```

# 如果 conda pack 无法打包的话,可能要安装: conda install --force-reinstall setuptools
conda pack -p .\venv -o crawl_env.tar.gz
Remove-Item -Path crawl_env -r
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 utils worker 使用说明.txt '-xr!*/pycache/*' '-xr!*__pycache__*' ui\fontend\dist ui\backend '-xr!ui\backend\output\*' '-xr!ui\backend\config.yaml'
# 使用 tar 压缩可能更快(其实也没多快),Windows11 以上都支持 tar.gz 格式
tar -czvf google_crawler.tar.gz *.bat config database crawl_env download mylib script tests utils worker 使用说明.txt --exclude='*/__pycache__'


# 测试用,排除指定文件,要加引号
D:\Program\7-Zip\7z.exe a -tzip -mmt -mx3 test.zip *.bat config  ui\fontend\dist ui\backend\* -xr!ui\backend\output\*  '-xr!ui\backend\config.yaml'
mkdir -p z7test
tar -xzf test.zip -C z7test
Remove-Item -Path z7test -r 
Remove-Item -Path test.zip