一个功能完善的企知道网站爬虫工具集,支持多种爬取模式,包括基础爬虫、高级爬虫、表格数据爬虫和智能爬虫(Selenium)。
- 🚀 多种爬虫版本:提供4种不同版本的爬虫,适应不同场景需求
- 🔄 自动翻页:智能爬虫和表格爬虫支持自动翻页,可爬取所有页面数据
- 🛡️ 反爬虫机制:高级版本包含随机User-Agent、请求重试、延迟处理等
- 🤖 Selenium支持:智能爬虫使用Selenium处理JavaScript渲染和验证码
- 📊 多格式导出:支持JSON和Excel格式导出
- ⚡ 性能优化:缓存机制、批量解析、减少等待时间等优化
.
├── HiSpider/
│ └── Static/
│ ├── qizhidao_spider.py # 基础版本爬虫
│ ├── qizhidao_advanced_spider.py # 高级版本爬虫
│ ├── qizhidao_table_spider.py # 表格数据爬虫
│ └── qizhidao_smart_spider.py # 智能爬虫(推荐)
├── run_qizhidao_spider.py # 快速启动脚本
├── requirements.txt # 依赖包列表
└── README.md # 项目说明文档
- Python 3.7+
- Chrome浏览器(智能爬虫需要)
- ChromeDriver(智能爬虫需要,通常会自动下载)
pip install -r requirements.txtrequests- HTTP请求库beautifulsoup4- HTML解析库selenium- 浏览器自动化(智能爬虫需要)pandas- 数据处理openpyxl- Excel文件处理lxml- XML/HTML解析器
# 交互式菜单
python run_qizhidao_spider.py
# 直接运行智能爬虫(推荐)
python run_qizhidao_spider.py 4 interactive
# 运行表格数据爬虫
python run_qizhidao_spider.py 3
# 运行高级版本爬虫
python run_qizhidao_spider.py 2python run_qizhidao_spider.py [版本号] [选项]1- 基础版本爬虫(简单快速,不支持分页)2- 高级版本爬虫(包含反爬虫机制,不支持分页)3- 表格数据爬虫(支持自动翻页)4- 智能爬虫(Selenium,支持验证码和自动翻页,推荐)
# 交互模式(等待用户准备好后开始)
python run_qizhidao_spider.py 4 interactive
# 无头模式(后台运行)
python run_qizhidao_spider.py 4 headless
# 直接使用结果页面URL
python run_qizhidao_spider.py 4 https://qiye.qizhidao.com/batch-query-result?matchId=...# 爬取前5页
python run_qizhidao_spider.py 3 5from HiSpider.Static.qizhidao_smart_spider import QizhidaoSmartSpider
# 创建爬虫实例
spider = QizhidaoSmartSpider(
url=None, # 目标URL(可选)
headless=False, # 是否无头模式
interactive=False # 是否交互模式
)
# 运行爬虫
result = spider.run(save_json=True, save_excel=True)
if result:
print(f"爬取了 {result['data']['total_results']} 条数据")
print(f"生成文件: {result['files']}")from HiSpider.Static.qizhidao_table_spider import QizhidaoTableSpider
# 创建爬虫实例(限制爬取5页)
spider = QizhidaoTableSpider(max_pages=5)
# 运行爬虫
result = spider.run()| 特性 | 基础版本 | 高级版本 | 表格爬虫 | 智能爬虫 |
|---|---|---|---|---|
| 自动翻页 | ❌ | ❌ | ✅ | ✅ |
| 反爬虫机制 | ❌ | ✅ | ✅ | ✅ |
| JavaScript支持 | ❌ | ❌ | ❌ | ✅ |
| 验证码处理 | ❌ | ❌ | ❌ | ✅ |
| 交互模式 | ❌ | ❌ | ❌ | ✅ |
| 性能优化 | ⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
智能爬虫(qizhidao_smart_spider.py)已进行以下优化:
- 缓存机制:缓存分页元素和表格元素,减少重复查找
- 批量解析:一次性解析所有行的HTML,减少BeautifulSoup初始化次数
- 减少等待时间:优化各种等待时间,提升爬取速度
- 最小化滚动:使用最小化滚动操作,减少不必要的页面操作
- 简化检查:简化数据稳定性检查,减少重复验证
爬虫会生成以下格式的文件:
- JSON格式:
qizhidao_data_YYYYMMDD_HHMMSS.json - Excel格式:
qizhidao_data_YYYYMMDD_HHMMSS.xlsx
- 法律合规:本项目仅用于教育学习和技术研究目的,禁止用于商业用途或任何违法活动
- 频率控制:建议适当控制爬取频率,避免对目标网站造成压力
- 验证码:智能爬虫需要手动处理验证码,请在有界面模式下运行
- ChromeDriver:确保Chrome浏览器和ChromeDriver版本匹配
A: 请确保已安装Chrome浏览器,并且ChromeDriver版本与Chrome版本匹配。
A: 智能爬虫已优化,如果仍感觉慢,可以:
- 使用无头模式(headless)
- 减少等待时间(修改代码中的sleep参数)
- 关闭调试模式(设置
_debug_mode = False)
A: 智能爬虫会自动检测验证码并等待用户手动解决。请在浏览器中完成验证后,程序会自动继续。
A: 使用智能爬虫的交互模式或直接提供结果页面URL:
python run_qizhidao_spider.py 4 https://qiye.qizhidao.com/batch-query-result?matchId=...- 添加更多反爬虫策略
- 支持更多数据导出格式
- 添加数据去重和清洗功能
- 支持并发爬取
- 添加Web界面
欢迎提交Issue和Pull Request!
本项目采用MIT许可证。详见 LICENSE 文件。
- 项目维护者:Router
- 项目地址:https://github.com/Router0824/Table-Intelligence-Crawler-System
感谢所有为这个项目做出贡献的开发者!