# 51job-scraper **Repository Path**: kaola_coding/51job-scraper ## Basic Information - **Project Name**: 51job-scraper - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-12 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 51job 招聘信息爬虫 基于 Selenium + Chromium 的 51job 招聘信息爬虫项目。 ## 环境 - Python 3.12 - Selenium 4.x - Chromium浏览器(系统自带 snap 版本) - chromedriver(snap 集成) ## 工作版本 **推荐使用**: `51job_scraper_chromium.py` 这是目前唯一有效的工作版本: - 使用系统 Chromium (`/snap/bin/chromium`) - chromedriver路径: `/snap/bin/chromium.chromedriver` - 无头模式运行 - 支持JavaScript渲染的动态页面 ## 使用方法 ```bash # 激活虚拟环境 source /home/ychzh-ubuntu/.openclaw/workspace/venv/bin/activate # 运行爬虫 python 51job_scraper_chromium.py ``` ## 文件说明 | 文件 | 状态 | 说明 | |------|------|------| | `51job_scraper_chromium.py` | ✅ 可用 | 工作版本,Selenium + Chromium | | `51job_scraper.py` | ⚠️ | 原始版本,Firefox | | `51job_scraper_v2.py` | ⚠️ | Firefox v2 | | `51job_scraper_playwright.py` | ❌ | Playwright 方案(浏览器下载失败) | | `51job_scraper_requests.py` | ❌ | 纯请求(51job是SPA,不支持) | | `51job_scraper_selenium_fixed.py` | ⚠️ | Selenium 修复版本 | | `51job_scraper_optimized.py` | ⚠️ | JavaScript 提取(需修复注释) | ## 数据结构 ### 职位元素 HTML 结构 ``` div.joblist-item ├── .jname - 职位名称 ├── .sal - 薪资 ├── .cname - 公司名称 ├── .area - 地点 └── .tag - 标签(多个) ``` ### 输出格式 ```json { "keyword": "仓库管理", "area_code": "090900", "crawl_time": "2026-02-12 09:16:46", "total_jobs": 30, "jobs": [ { "job_name": "库房主管", "company_name": "杭州长川科技股份有限公司", "salary": "7千-1万·15薪", "location": "杭州", "url": "...", "tags": ["数据分析", "erp", "word", ...] } ] } ``` ## 已知问题 1. **Playwright 安装失败** - Chrome 下载报网络错误 (ECONNRESET) - 原因:网络或代理问题 2. **Firefox 兼容问题** - Firefox 147.0.3 与 geckodriver 0.35.0 不兼容 3. **结果过滤** - 首次爬取包含非职位链接(如"APP下载") - 需要优化过滤逻辑 ## 依赖 ``` selenium==4.x ``` 安装: ```bash pip install selenium ``` ## 作者 Created by OpenClaw Assistant