Skip to content

behappy-other/demo_spider_scrapy

Repository files navigation

Scrapy框架完整教程演示项目

项目概述

🕷️ Scrapy工作流程演示

  • 引擎(Engine): 控制数据流在所有组件间流动
  • 调度器(Scheduler): 管理请求队列和去重
  • 下载器(Downloader): 发送HTTP请求获取响应
  • 爬虫(Spider): 解析响应数据和生成新请求
  • 管道(Pipeline): 处理和存储爬取的数据

📁 项目结构

demo_spider_scrapy/
├── scrapy.cfg              # Scrapy项目配置文件
├── requirements.txt         # Python依赖包 
├── run_demo.py             # 演示运行脚本 
├── README.md               # 项目说明文档 
└── game/                   # Scrapy项目主目录 
    ├── __init__.py 
    ├── items.py            # 数据结构定义 
    ├── pipelines.py        # 数据管道处理 
    ├── settings.py         # 项目配置
    └── spiders/            # 爬虫程序目录
        ├── __init__.py
        ├── game_4399.py    # 4399游戏爬虫(博客原例)
        ├── demo_spider.py  # 演示爬虫
        └── quotes_spider.py # 名言爬虫

🎯 核心功能演示

1. 数据结构定义 (Items)

  • GameItem: 游戏数据结构(名称、类别、日期)
  • NewsItem: 新闻数据结构(标题、内容、时间、来源)

2. 多种数据管道 (Pipelines)

  • GamePipeline: CSV文件存储管道
  • JsonPipeline: JSON文件存储管道
  • StatisticsPipeline: 数据统计管道
  • GameMySqlPipeline: MySQL数据库存储管道(模板)

3. 爬虫程序 (Spiders)

  • game_4399: 爬取4399游戏网站(博客原例)
  • demo: 演示基础爬虫功能
  • quotes: 爬取名言网站展示真实应用

4. 数据存储方式

  • CSV文件存储
  • JSON文件存储
  • 数据统计分析
  • MySQL数据库存储(配置模板)

🚀 运行方式

方法1: 使用演示脚本(推荐)

python run_demo.py

方法2: 直接运行爬虫

# 安装依赖
pip install -r requirements.txt

# 运行特定爬虫
scrapy crawl demo
scrapy crawl quotes
scrapy crawl game_4399

📊 输出文件

运行后会生成以下文件:

  • game_data.csv: 游戏数据CSV文件
  • scraped_data.json: JSON格式数据文件
  • statistics.json: 爬取统计信息

🔧 配置说明

settings.py 主要配置

  • ROBOTSTXT_OBEY = False: 忽略robots.txt
  • DOWNLOAD_DELAY = 1: 下载延迟1秒
  • CONCURRENT_REQUESTS = 16: 并发请求数
  • ITEM_PIPELINES: 管道配置和优先级

管道优先级

  • 数字越小优先级越高
  • 高优先级管道先处理数据
  • 可配置多个管道同时工作

📚 学习要点

  1. Scrapy架构理解: 五大组件协同工作
  2. 数据流向: Request → Response → Item → Pipeline
  3. XPath/CSS选择器: 数据提取技术
  4. Item规范: 结构化数据定义
  5. Pipeline设计: 数据处理和存储
  6. 配置管理: settings.py统一配置

🌐 原文链接

超详细的Scrapy框架的基本使用教程

📝 注意事项

  • 实际爬取时请遵守网站robots.txt
  • 建议设置合理的下载延迟
  • 大规模爬取时注意IP限制和反爬措施

🛠️ 扩展功能

  • 支持多种数据存储格式
  • 可配置的管道优先级
  • 完整的错误处理机制
  • 数据统计和分析功能

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages