Python爬蟲 scrapy框架 原理,scrapy開發流程

這裏寫圖片描述

  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 文件名.json
scrapy crawl 爬蟲名 -o 文件名.xml 等等

如果不記得什麼格式,只需要隨便寫點後綴,會提示都有什麼格式
scrapy crawl 爬蟲名 -o 文件名.xmladfsa 

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章