1 scrapy框架的介紹安裝
pip install scrapy檢視是否安裝完成
scrapy ‐hscrapy框架是實現爬蟲功能的乙個軟體結構和功能元件集合
scrapy爬蟲框架的結構
這5+2的結構, 就是scrapy框架
主要有三條主要的資料流路徑
第一條路徑
1) engine通過中介軟體獲得了spiders傳送的請求, 這個請求叫做requests, 相當於是乙個url
2) engine再**給scheduler, scheduler主要負責對爬取請求進行排程
第二條路徑
3) 從scheduler獲得下乙個需要爬取的請求, 這是乙個真實的請求
4) engine獲得這個請求之後, 通過中介軟體, 將請求給 **********模組
5) **********爬取請求中相關的網頁, 並將爬取的內容封裝成乙個物件, 這個物件叫response(響應)
6) engine再通過中介軟體將response返回給spiders
第三條路徑
7) spiders處理從**********獲得的響應, 處理之後會產生兩個資料型別, 乙個是items(爬取項), 另乙個是新的requests
8) engine接受到這兩資料之後, 將items傳送給item pipelines, 將requests傳送給scheduler進行排程
整個框架的入口是spiders, 出口是item pipelines
其中engine, scheduler, 和**********是已經寫好的, 不需要實現
spiders和item pipelines是需要編寫的, 但是裡面有既定的**框架, 所以情況是要對某東西進行修改, 這種情況一般叫配置
2 框架解析
engine
是整個框架的核心
不需要修改
控制所有模組之間的資料流
根據條件觸發事件
**********
不需要修改
scheduler
對所有請求進行排程管理
********** middleware
在engine和**********之間的中介軟體
實現使用者可配置的控制, 一般是對requests或者responses進行處理和修改的時候使用
實現 修改, 丟棄, 新增請求或相應
使用者可以編寫配置**
spiders
解析**********返回的相應
產生爬取項
產生額外的爬取請求
需要使用者編寫, 是使用者最主要編寫的部分
item pipelines
是以流水線的形式進行處理生成的爬起項
由一組操作順序組成, 類似流水線, 每個操作是乙個item pipelines
可能包含的操作有: 清理, 檢驗, 和查重爬取項中的html資料, 將資料儲存到資料庫中
完全由使用者編寫
spider middleware
在spiders和engine之間的中介軟體
物件求和爬取項的再處理
修改, 丟棄, 新增請求或者爬取項
中介軟體主要是對中間的資料流進行一些操作
3 scrapy和requests的區別
相同點:
都可以進行頁面的爬取
可用性都比較好
兩者都沒有處理js, 提交表單, 應對驗證碼的功能(但是可以擴充套件)
不同點scrapy是**級別的爬蟲, 是乙個框架, 併發性好, 效能較高, 重點在於爬蟲結構
4 常用命令
命令格式
scrapy 命令 命令項 命令引數startproject 建立乙個新工程
genspider 建立乙個爬蟲
settings 獲取爬蟲配置資訊
crawl 執行乙個爬蟲
list 列出工程中所有爬蟲
shell 啟動url除錯命令列
scrapy主要是乙個後台的爬蟲框架
之所以提供命令列的方式是因為 命令列的方式更加榮益自動化, 適合指令碼控制
本質上, scrapy是給程式設計師使用的, 使用命令列的方式更加合適
5 簡單例項
05 Scrapy 框架基礎
scrapy是什麼?參考 06 scrapy配置安裝及入門案例 架構圖涉及三個物件和七個模組 開發過程中,scrapy的使用 主要需要自己手寫的內容是 spider 和 item pipline 兩個模組,middlewares 和 spider middlewares偶爾肯能會需要手寫.scrap...
05 scrapy框架使用
settings.py 工程的配置檔案 2.cd proname 進入專案 3.建立爬蟲原始檔 4.執行工程 5.配置settings.py 2.指定日誌型別 3.ua偽裝 執行指令 scrapy crawl spidername o filepath scrapy crawl duanzi o d...
Mac python 搭建scrapy爬蟲框架
1 在mac上安裝好python3,以及相關元件 2 進入python3的虛擬環境 workon env3.7 3 安裝scrapy pip install scrapy 4 建立乙個scrapy專案 4.1選擇路徑專案路徑 cd users panstark pycharmprojects 4.2...