# 中央主流媒体爬虫系统 本项目是一个专门用于爬取中央主流媒体的Django爬虫系统,支持爬取18家中央主流媒体及其子网站、客户端和新媒体平台。 ## 支持的媒体列表 ### 18家中央主流媒体 1. **人民日报** - 人民网、人民日报客户端、人民日报报纸 2. **新华社** - 新华网、新华网主站、新华社移动端 3. **中央广播电视总台** - 央视网、央视新闻、央视移动端 4. **求是** - 求是网、求是移动端 5. **解放军报** - 解放军报、解放军报移动端 6. **光明日报** - 光明日报、光明日报移动端 7. **经济日报** - 经济日报、经济日报移动端 8. **中国日报** - 中国日报、中国日报移动端 9. **工人日报** - 工人日报、工人日报移动端 10. **科技日报** - 科技日报、科技日报移动端 11. **人民政协报** - 人民政协报、人民政协报移动端 12. **中国纪检监察报** - 中国纪检监察报、中国纪检监察报移动端 13. **中国新闻社** - 中国新闻社、中国新闻社移动端 14. **学习时报** - 学习时报、学习时报移动端 15. **中国青年报** - 中国青年报、中国青年报移动端 16. **中国妇女报** - 中国妇女报、中国妇女报移动端 17. **法治日报** - 法治日报、法治日报移动端 18. **农民日报** - 农民日报、农民日报移动端 ### 特殊平台 19. **学习强国** - 中央媒体学习号及省级以上学习平台 20. **旗帜网** - 旗帜网及其移动端 21. **中国网** - 主网及中国网一省份(不转发二级子网站) ## 使用方法 ### 1. 单个媒体爬取 ```bash # 爬取人民日报所有平台 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. 批量爬取所有媒体 ```bash # 爬取所有中央主流媒体 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. 导出文章数据 ```bash # 导出所有文章为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文档格式,包含格式化的文章内容 ## 媒体文件处理 系统会自动下载文章中的图片和视频文件,并保存到本地媒体目录。导出时可以选择是否包含媒体文件。 ## 注意事项 1. **爬取频率**: 建议控制爬取频率,避免对目标网站造成过大压力 2. **数据存储**: 爬取的数据会存储在Django数据库中,确保有足够的存储空间 3. **网络环境**: 某些网站可能需要特定的网络环境才能访问 4. **反爬虫**: 部分网站可能有反爬虫机制,需要适当调整爬取策略 ## 技术特性 - **智能识别**: 自动识别文章页面和内容区域 - **媒体下载**: 自动下载文章中的图片和视频 - **去重处理**: 自动避免重复爬取相同文章 - **错误处理**: 完善的错误处理和日志记录 - **可扩展**: 易于添加新的媒体网站 ## 依赖要求 - Django 3.0+ - requests - beautifulsoup4 - python-docx (用于Word导出) - Pillow (用于图片处理) ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 数据库迁移 ```bash python manage.py makemigrations python manage.py migrate ``` ## 运行爬虫 ```bash # 启动Django服务器 python manage.py runserver # 运行爬虫 python manage.py crawl_all_media ``` ## 查看结果 爬取完成后,可以通过Django管理界面或导出命令查看爬取的文章数据。