#Sprapy爬蟲框架初了解
阿新 • • 發佈:2017-12-01
mysql 啟用 scheduler 成都 半成品 命令行 執行 調試 sta
Scrapy的安裝
cmd命令提示符下: 執行pip install scrapy命令
maybe你會用到的指令或安裝(如果用pip指令安裝不了,你可以在CSN或度裏面找資源):
- pip install Django
- install win32api
- install mysql-python
Scrapy爬蟲框架結構
- 爬蟲框架是實現爬蟲功能的一個軟件結構和功能組件結構
- 爬蟲框架是一個半成品,能夠幫助用戶實現網絡爬蟲
5+2結構
ENGINE(發動機) 不需要用戶修改
- 控制所有模塊之間的數據流
- 根據條件出發事件
SCHEDULER(調度程序)不需要用戶修改
- 對所有爬取請求進行調度管理
ITEM PIPELINES (項目管道組件)
- 以流水線方式處理Spider產生的爬取項。
- 由一組操作順序組成,類似流水線,每個操作是一個Item Pipeline類型
- 操作包括:對Item內容 清理、檢驗、查重爬取項中的HTML數據、將數據存儲到數據庫
SPIDERS(蜘蛛俠) 用戶主要編寫
- 解析Downloader返回的響應(Response)
- 產生爬取項(scraped item)
- 產生額外的新的爬取請求(Request)
DOWNLOADER (下載俠)不需要用戶修改
- 根據用戶提供的請求下載網頁
- 根據用戶提供的請求向網絡中提交一個請求,最終獲得返回的一個內容
中間鍵1 Downloader Middleware
- 目的:實施Engine ->Downloader這段過程時進行用戶可配置的控制
- 功能:修改、丟棄、新增請求或響應
中間鍵2 Spider Middleware
- 目的:對Spiders和Engine之間的Request、Response、和Item操作進行處理
- 功能:修改、丟棄、新增請求或爬取項
3條主要數據流路徑
SPIDERS->ENGINE->SCHEDULER
SCHEDULER->ENGINE->DOWNLOADER->ENGINE->SPIDERS
SPIDERS->ENGINE->ITEM PIPELINES & SCHEDULER
Requests vs Scrapy
相同點
- 都可以進行頁面請求和爬取,Python爬蟲的兩個重要技術路線
- 可用性都好,文檔豐富,入門簡單
- 都沒有處理JS、提交表單、應對驗證碼等功能
不同點
- Request:頁面級爬蟲、功能庫、並發性考慮不足、性能差、重點在於頁面下載、定制靈活、上手十分簡單。
- Scrapy:網站級爬蟲、框架、並發性好,性能較高、重點在於爬蟲結構、一般定制靈活,深度定制困難、入門稍難。
選擇哪個技術路線開發爬蟲
- 小需求,requests庫
- 不小的需求,Scrapy框架
- 定制成都很高的需求,自搭框架,Requests>Scrapy
scrapy幫助命令行
scrapy -h
常用命令
startproject 創建一個新工程
genspider 創建一個爬蟲
settings 獲得爬蟲配置信息
crawl 運行一個爬蟲
list 列出工程中所有爬蟲
shell 啟用url調試命令行
#Sprapy爬蟲框架初了解