Files
green_classroom/CRAWLER_README.md

6.2 KiB
Raw Blame History

中央主流媒体爬虫系统

本项目是一个专门用于爬取中央主流媒体的Django爬虫系统支持爬取18家中央主流媒体及其子网站、客户端和新媒体平台。

支持的媒体列表

18家中央主流媒体

  1. 人民日报 - 人民网、人民日报客户端、人民日报报纸
  2. 新华社 - 新华网、新华网主站、新华社移动端
  3. 中央广播电视总台 - 央视网、央视新闻、央视移动端
  4. 求是 - 求是网、求是移动端
  5. 解放军报 - 解放军报、解放军报移动端
  6. 光明日报 - 光明日报、光明日报移动端
  7. 经济日报 - 经济日报、经济日报移动端
  8. 中国日报 - 中国日报、中国日报移动端
  9. 工人日报 - 工人日报、工人日报移动端
  10. 科技日报 - 科技日报、科技日报移动端
  11. 人民政协报 - 人民政协报、人民政协报移动端
  12. 中国纪检监察报 - 中国纪检监察报、中国纪检监察报移动端
  13. 中国新闻社 - 中国新闻社、中国新闻社移动端
  14. 学习时报 - 学习时报、学习时报移动端
  15. 中国青年报 - 中国青年报、中国青年报移动端
  16. 中国妇女报 - 中国妇女报、中国妇女报移动端
  17. 法治日报 - 法治日报、法治日报移动端
  18. 农民日报 - 农民日报、农民日报移动端

特殊平台

  1. 学习强国 - 中央媒体学习号及省级以上学习平台
  2. 旗帜网 - 旗帜网及其移动端
  3. 中国网 - 主网及中国网一省份(不转发二级子网站)

使用方法

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文档格式包含格式化的文章内容

媒体文件处理

系统会自动下载文章中的图片和视频文件,并保存到本地媒体目录。导出时可以选择是否包含媒体文件。

注意事项

  1. 爬取频率: 建议控制爬取频率,避免对目标网站造成过大压力
  2. 数据存储: 爬取的数据会存储在Django数据库中确保有足够的存储空间
  3. 网络环境: 某些网站可能需要特定的网络环境才能访问
  4. 反爬虫: 部分网站可能有反爬虫机制,需要适当调整爬取策略

技术特性

  • 智能识别: 自动识别文章页面和内容区域
  • 媒体下载: 自动下载文章中的图片和视频
  • 去重处理: 自动避免重复爬取相同文章
  • 错误处理: 完善的错误处理和日志记录
  • 可扩展: 易于添加新的媒体网站

依赖要求

  • 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管理界面或导出命令查看爬取的文章数据。