Python爬虫 scrapy框架 原理,scrapy开发流程

来源:互联网 发布:苹果6s蜂窝数据打不开 编辑:程序博客网 时间:2024/06/05 14:32

这里写图片描述

  1. Scrapy Engine 引擎
    处理整个系统,是各个模块之间的联系人,各个模块的数据均需要引擎来发送和收回
  2. Scheduler 调度器
    a.接收请求,压入队列
    b.引擎再次请求时返回请求
  3. Downloader 下载器
    接收请求request,返回响应response
  4. Spider 爬虫
    a.发起起始的请求 start_url
    b.定义如何爬取下一个网站 call_back
  5. Item Pipeline 管道
    定义数据的后续处理
  6. Middleware 中间件
    a. Downloader Middleware 下载器中间件
    处理引擎和下载器之间的请求request和响应response (反反爬)
    b. Spider Middleware 爬虫中间件
    处理spider的响应输出和请求输入

scrapy开发流程:

1 创建项目

scrapy startproject 项目名称

2 明确要爬取的网站数据,在items.py中建模
3 setting中对项目进行配置,scrapy.cfg远程部署配置
4 创建爬虫,spiders文件夹存放爬虫文件

# 命令行创建scrapy genspider 爬虫名 爬虫允许的域名# 手动创建在spiders文件夹下创建py文件import scrapy导入模型(items中该爬虫的数据模型)爬虫类(类名一般为"爬虫名Spider")必要类属性:name 爬虫名allowed_domains 允许爬取的域名start_urls 起始爬取的url列表必要方法def parse(self,response):    写入数据获取和处理方法,以及后续url的操作

5 保存数据 pipeline.py进行爬取数据的存储设置
该类一般有三个方法

def __init___(self): 或者是 open_spider(self)    # 定义初始状态,一般为打开一个文件,或者是链接数据库的必要参数等    f = open("file","w")def process_item(self,item,spider):    定义数据存储过程    item为在爬虫.py文件中yield返回给引擎的爬取数据def close_spider(spider):    定义数据存储完毕的状态,一般为关闭文件或者是断开数据库服务器链接

6 运行爬虫

scrapy crawl 爬虫名

7 feed输出
将获取到的数据返回给引擎,并Feed输出,给其他平台进行数据分析

scrapy crawl 爬虫名 -o 文件名.jsonscrapy crawl 爬虫名 -o 文件名.xml 等等如果不记得什么格式,只需要随便写点后缀,会提示都有什么格式scrapy crawl 爬虫名 -o 文件名.xmladfsa 

这里写图片描述

原创粉丝点击