6.2 KiB
6.2 KiB
中央主流媒体爬虫系统
本项目是一个专门用于爬取中央主流媒体的Django爬虫系统,支持爬取18家中央主流媒体及其子网站、客户端和新媒体平台。
支持的媒体列表
18家中央主流媒体
- 人民日报 - 人民网、人民日报客户端、人民日报报纸
- 新华社 - 新华网、新华网主站、新华社移动端
- 中央广播电视总台 - 央视网、央视新闻、央视移动端
- 求是 - 求是网、求是移动端
- 解放军报 - 解放军报、解放军报移动端
- 光明日报 - 光明日报、光明日报移动端
- 经济日报 - 经济日报、经济日报移动端
- 中国日报 - 中国日报、中国日报移动端
- 工人日报 - 工人日报、工人日报移动端
- 科技日报 - 科技日报、科技日报移动端
- 人民政协报 - 人民政协报、人民政协报移动端
- 中国纪检监察报 - 中国纪检监察报、中国纪检监察报移动端
- 中国新闻社 - 中国新闻社、中国新闻社移动端
- 学习时报 - 学习时报、学习时报移动端
- 中国青年报 - 中国青年报、中国青年报移动端
- 中国妇女报 - 中国妇女报、中国妇女报移动端
- 法治日报 - 法治日报、法治日报移动端
- 农民日报 - 农民日报、农民日报移动端
特殊平台
- 学习强国 - 中央媒体学习号及省级以上学习平台
- 旗帜网 - 旗帜网及其移动端
- 中国网 - 主网及中国网一省份(不转发二级子网站)
使用方法
1. 单个媒体爬取
# 爬取人民日报所有平台
python manage.py crawl_rmrb
# 爬取人民日报特定平台
python manage.py crawl_rmrb --platform peopleapp # 只爬取客户端
python manage.py crawl_rmrb --platform people # 只爬取人民网
python manage.py crawl_rmrb --platform paper # 只爬取报纸
# 爬取新华社所有平台
python manage.py crawl_xinhua
# 爬取央视所有平台
python manage.py crawl_cctv
2. 批量爬取所有媒体
# 爬取所有中央主流媒体
python manage.py crawl_all_media
# 爬取指定媒体
python manage.py crawl_all_media --media rmrb,xinhua,cctv
# 爬取指定平台类型
python manage.py crawl_all_media --platform web # 只爬取网站
python manage.py crawl_all_media --platform mobile # 只爬取移动端
3. 导出文章数据
# 导出所有文章为JSON格式
python manage.py export_articles --format json
# 导出指定网站的文章为CSV格式
python manage.py export_articles --format csv --website "人民日报客户端"
# 导出为Word文档(包含媒体文件)
python manage.py export_articles --format docx --include-media
# 导出为ZIP包(包含文章数据和媒体文件)
python manage.py export_articles --format json --include-media
可用的爬虫命令
| 命令 | 媒体名称 | 说明 |
|---|---|---|
crawl_rmrb |
人民日报 | 爬取人民网、客户端、报纸 |
crawl_xinhua |
新华社 | 爬取新华网、主站、移动端 |
crawl_cctv |
中央广播电视总台 | 爬取央视网、央视新闻、移动端 |
crawl_qiushi |
求是 | 爬取求是网、移动端 |
crawl_pla |
解放军报 | 爬取解放军报、移动端 |
crawl_gmrb |
光明日报 | 爬取光明日报、移动端 |
crawl_jjrb |
经济日报 | 爬取经济日报、移动端 |
crawl_chinadaily |
中国日报 | 爬取中国日报、移动端 |
crawl_grrb |
工人日报 | 爬取工人日报、移动端 |
crawl_kjrb |
科技日报 | 爬取科技日报、移动端 |
crawl_rmzxb |
人民政协报 | 爬取人民政协报、移动端 |
crawl_zgjwjc |
中国纪检监察报 | 爬取中国纪检监察报、移动端 |
crawl_chinanews |
中国新闻社 | 爬取中国新闻社、移动端 |
crawl_xxsb |
学习时报 | 爬取学习时报、移动端 |
crawl_zgqnb |
中国青年报 | 爬取中国青年报、移动端 |
crawl_zgfnb |
中国妇女报 | 爬取中国妇女报、移动端 |
crawl_fzrb |
法治日报 | 爬取法治日报、移动端 |
crawl_nmrb |
农民日报 | 爬取农民日报、移动端 |
crawl_xuexi |
学习强国 | 爬取中央媒体学习号及省级平台 |
crawl_qizhi |
旗帜网 | 爬取旗帜网、移动端 |
crawl_china |
中国网 | 爬取主网及一省份 |
crawl_all_media |
所有媒体 | 批量爬取所有中央主流媒体 |
平台选项
每个爬虫命令都支持以下平台选项:
all(默认): 爬取所有平台web: 只爬取网站版本mobile: 只爬取移动端版本- 特定平台: 每个媒体可能有特定的平台选项
数据导出格式
支持以下导出格式:
json: JSON格式,便于程序处理csv: CSV格式,便于Excel打开docx: Word文档格式,包含格式化的文章内容
媒体文件处理
系统会自动下载文章中的图片和视频文件,并保存到本地媒体目录。导出时可以选择是否包含媒体文件。
注意事项
- 爬取频率: 建议控制爬取频率,避免对目标网站造成过大压力
- 数据存储: 爬取的数据会存储在Django数据库中,确保有足够的存储空间
- 网络环境: 某些网站可能需要特定的网络环境才能访问
- 反爬虫: 部分网站可能有反爬虫机制,需要适当调整爬取策略
技术特性
- 智能识别: 自动识别文章页面和内容区域
- 媒体下载: 自动下载文章中的图片和视频
- 去重处理: 自动避免重复爬取相同文章
- 错误处理: 完善的错误处理和日志记录
- 可扩展: 易于添加新的媒体网站
依赖要求
- Django 3.0+
- requests
- beautifulsoup4
- python-docx (用于Word导出)
- Pillow (用于图片处理)
安装依赖
pip install -r requirements.txt
数据库迁移
python manage.py makemigrations
python manage.py migrate
运行爬虫
# 启动Django服务器
python manage.py runserver
# 运行爬虫
python manage.py crawl_all_media
查看结果
爬取完成后,可以通过Django管理界面或导出命令查看爬取的文章数据。