Skip to content

16yun-cn/cookie-pool-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weibo Search Crawler (DrissionPage Hybrid Mode + RQ)

基于 DrissionPage 混合模式和 Python-RQ 解耦架构的微博搜索爬虫系统。

特性

  • DrissionPage 混合模式:
    • 浏览器模式: 使用真实的 Chromium 实现生成有效的访客 Cookie (SUB/SUBP)。
  • curl_cffi 模式: 共享浏览器的 Cookie 和 UA,进行高并发数据抓取。
  • RQ 解耦架构: 分离 CookieSearch Worker,提升稳定性和扩展性。
  • 智能代理: 集成 IP 代理,支持自动切换与持久化。
  • 数据持久化: Redis (用于去重/缓存) 和 JSONL 日志 (用于持久化) 双重存储。
flowchart TD
    A[启动任务<br/>CLI / Make / Worker] --> B{Cookie 池有可用 Cookie?}

    B -- 否 --> C[启动浏览器<br/>DrissionPage + Chromium]
    C --> D[访问微博首页/搜索页]
    D --> E[注入 stealth 脚本<br/>伪装 webdriver / UA / UA-CH]
    E --> F[获取 SUB / SUBP / 完整 Cookie]
    F --> G[保存到 Redis Cookie 池]

    B -- 是 --> H[从 Redis 取可用 Cookie]
    G --> H

    H --> I[创建抓取会话<br/>curl_cffi Session]
    I --> J[带 Cookie / UA / Client Hints / Proxy<br/>请求微博搜索 API]
    J --> K{返回正常?}

    K -- 否,Cookie 失效 --> L[标记 Cookie 无效]
    L --> C

    K -- 否,网络错误 --> M[重试 / 重建 Session]
    M --> J

    K -- 是 --> N[解析搜索结果]
    N --> O[结果写入 Redis]
    N --> P[原始响应与过程写入 JSONL 日志]
    O --> Q[返回结果 / 继续下一页]
    P --> Q
Loading

前置要求

  • Python 3.10+
  • uv (或者使用 poetry/pip)
  • Redis 5.0+
  • Google Chrome / Chromium
  • 如果使用了 16yun 爬虫代理,需要使用 https://github.com/16yun-cn/portunnel-realase 转化为本地 无须auth认证的模式。DrissionPage的chrome模式对auth认证采用的是插件模式,效率比较低。

快速开始

1. 安装与配置

# 安装依赖
make install # uv sync

# 配置环境
cp .env.example .env
# 编辑 .env 填入你的 Redis 和 代理配置

2. 启动基础设施 (可选)

如果你使用 Docker 运行 Redis:

make redis-start

3. 初始化 Cookie 池

在搜索之前,确保 Cookie 池中有有效的 Cookie:

make fill-pool

4. 运行搜索

# 简单搜索
make search KEYWORD="人工智能"

5. 启动后台 Workers

生产环境建议分开运行 Workers:

# 启动所有 Worker
make worker-all

# 或分别启动
make worker-cookie
make worker-search

监控

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors