1. 程式人生 > >#Sprapy爬蟲框架初了解

#Sprapy爬蟲框架初了解

mysql 啟用 scheduler 成都 半成品 命令行 執行 調試 sta

Scrapy的安裝

cmd命令提示符下: 執行pip install scrapy命令

maybe你會用到的指令或安裝(如果用pip指令安裝不了,你可以在CSN或度裏面找資源):

  • pip install Django
  • install win32api
  • install mysql-python

Scrapy爬蟲框架結構

  • 爬蟲框架是實現爬蟲功能的一個軟件結構和功能組件結構
  • 爬蟲框架是一個半成品,能夠幫助用戶實現網絡爬蟲

5+2結構

技術分享圖片

  1. ENGINE(發動機) 不需要用戶修改

    • 控制所有模塊之間的數據流
    • 根據條件出發事件
  2. SCHEDULER(調度程序)不需要用戶修改

    • 對所有爬取請求進行調度管理
  3. ITEM PIPELINES (項目管道組件)

    • 以流水線方式處理Spider產生的爬取項。
    • 由一組操作順序組成,類似流水線,每個操作是一個Item Pipeline類型
    • 操作包括:對Item內容 清理、檢驗、查重爬取項中的HTML數據、將數據存儲到數據庫
  4. SPIDERS(蜘蛛俠) 用戶主要編寫

    • 解析Downloader返回的響應(Response)
    • 產生爬取項(scraped item)
    • 產生額外的新的爬取請求(Request)
  5. DOWNLOADER (下載俠)不需要用戶修改

    • 根據用戶提供的請求下載網頁
    • 根據用戶提供的請求向網絡中提交一個請求,最終獲得返回的一個內容
  6. 中間鍵1 Downloader Middleware

    • 目的:實施Engine ->Downloader這段過程時進行用戶可配置的控制
    • 功能:修改、丟棄、新增請求或響應
  7. 中間鍵2 Spider Middleware

    • 目的:對Spiders和Engine之間的Request、Response、和Item操作進行處理
    • 功能:修改、丟棄、新增請求或爬取項

3條主要數據流路徑

  1. SPIDERS->ENGINE->SCHEDULER

  2. SCHEDULER->ENGINE->DOWNLOADER->ENGINE->SPIDERS

  3. SPIDERS->ENGINE->ITEM PIPELINES & SCHEDULER

Requests vs Scrapy

相同點

  • 都可以進行頁面請求和爬取,Python爬蟲的兩個重要技術路線
  • 可用性都好,文檔豐富,入門簡單
  • 都沒有處理JS、提交表單、應對驗證碼等功能

不同點

  1. Request:頁面級爬蟲、功能庫、並發性考慮不足、性能差、重點在於頁面下載、定制靈活、上手十分簡單。
  2. Scrapy:網站級爬蟲、框架、並發性好,性能較高、重點在於爬蟲結構、一般定制靈活,深度定制困難、入門稍難。

選擇哪個技術路線開發爬蟲

  • 小需求,requests庫
  • 不小的需求,Scrapy框架
  • 定制成都很高的需求,自搭框架,Requests>Scrapy

scrapy幫助命令行

scrapy -h

常用命令

  • startproject 創建一個新工程

  • genspider 創建一個爬蟲

  • settings 獲得爬蟲配置信息

  • crawl 運行一個爬蟲

  • list 列出工程中所有爬蟲

  • shell 啟用url調試命令行

#Sprapy爬蟲框架初了解