JavaShuo
欄目
標籤
Python爬蟲教程-30-Scrapy 爬蟲框架介紹
時間 2019-11-12
標籤
python
爬蟲
教程
scrapy
框架
介紹
欄目
Python
简体版
原文
原文鏈接
從本篇開始學習 Scrapy 爬蟲框架
html
Python爬蟲教程-30-Scrapy 爬蟲框架介紹
框架:框架就是對於相同的類似的部分,代碼作到不出錯,而咱們就能夠將注意力放到咱們本身的部分了
常見爬蟲框架:
scrapy
pyspider
crawley
Scrapy 是一個爲了爬取網站數據,提取結構性數據而編寫的應用框架。 能夠應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中
Scrapy 官方文檔
https://doc.scrapy.org/en/latest/
http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html
Scrapy 的安裝
能夠直接在 Pycharm 進行安裝
【PyCharm】>【file】>【settings】>【Project Interpreter】>【+】 >【scrapy】>【install】
具體操做截圖:
點擊左下角 install 靜靜等待
測試 Scrapy 是否安裝成功
進入當前所在的環境
輸入 scrapy 命令
截圖:
這裏就說明安裝成功l
Scrapy 概述
包含各個部件
ScrapyEngine:神經中樞,大腦,核心
Scheduler 調度器:負責處理請求,引擎發來的 request 請求,調度器須要處理,而後交換引擎
Downloader 下載器:把引擎發來的 requests 發出請求,獲得 response
Spider 爬蟲:負責把下載器獲得的網頁/結果進行分解,分解成數據 + 連接
ItemPipeline 管道:詳細處理 Item
DownloaderMiddleware 下載中間件:自定義下載的功能擴展組件
SpiderMiddleware 爬蟲中間件:對 spider 進行功能擴展
數據流圖:
綠色箭頭是數據的流向
由 Spider 開始 Requests, Requests, Responses, Items
爬蟲項目大體流程
1.新建項目:scrapy startproject xxx項目名
2.明確須要爬取的目標/產品:編寫 item.py
3.製做爬蟲:地址 spider/xxspider.py 負責分解,提取下載的數據
4.存儲內容:pipelines.py
模塊介紹
ItemPipeline
對應 pipelines 文件
爬蟲提取出數據存入 item 後,item 中保存的數據須要進一步處理,好比清洗,去蟲,存儲等
Pipeline 須要處理 process_item 函數
process_item
spider 提取出來的 item 做爲參數傳入,同時傳入的還有 spider
此方法必須實現
必須返回一個 Item 對象,被丟棄的 item 不會被以後的 pipeline
_ init _:構造函數
進行一些必要的參數初始化
open_spider(spider):
spider 對象對開啓的時候調用
close_spider(spider):
當 spider 對象被關閉的時候調用
Spider
對應的是文件夾 spider 下的文件
_ init _:初始化爬蟲名稱,start _urls 列表
start_requests:生成 Requests 對象交給 Scrapy 下載並返回 response
parse:根據返回的 response 解析出相應的 item,item 自動進入 pipeline:若是須要,解析 url,url自動交給 requests 模塊,一直循環下去
start_requests:此方法盡能被調用一次,讀取 start _urls 內容並啓動循環過程
name:設置爬蟲名稱
start_urls:設置開始第一批爬取的 url
allow_domains:spider 容許去爬的域名列表
start_request(self):只被調用一次
parse:檢測編碼
log:日誌記錄
中間件(DownloaderMiddlewares)
什麼是中間件?
中間件是處於引擎和下載器中間的一層組件,能夠有多個
參照上面的流程圖,咱們把中間件理解成成一個通道,簡單說,就是在請求/響應等傳輸的時候,在過程當中設一個檢查哨,例如:
1.身份的假裝:
UserAgent,咱們假裝身份,不是在開始請求的時候就設置好,而是在請求的過程當中,設置中間件,當檢測到發送請求的時候,攔下請求頭,修改 UserAgent 值
2.篩選響應數據:
咱們最開始獲得的數據,是整個頁面,假設某個操做,須要咱們過濾掉全部圖片,咱們就能夠在響應的過程當中,設置一箇中間件
比較抽象,可能不是很好理解,可是過程是其實很簡單的
在 middlewares 文件中
須要在 settings 中設置以是生效
通常一箇中間件完成一項功能
必須實現如下一個或者多個方法
process_request (self, request, spider)
在請求的過程當中被調用
必須返回 None 或 Response 或 Request 或 raise IgnoreRequest
若是返回 None:scrapy 將繼續處理 request
若是返回 Request:scrapy 會中止調用 process_request 並沖洗調度返回的 request
若是返回 Response:scrapy 將不會調用其餘的 process_request 或者 process _exception,直接將該 response 做爲結果返回,同時會調用 process _response
process_response (self, request, spider)
每次返回結果的時候自動調用
下一篇連接:
Python爬蟲教程-31-建立 Scrapy 爬蟲框架項目
更多文章連接:
Python 爬蟲隨筆
本筆記不容許任何我的和組織轉載
相關文章
1.
Python爬蟲教程-01-爬蟲介紹
2.
Python爬蟲教程-30-Scrapy 爬蟲框架介紹
3.
python爬蟲實例介紹-python爬蟲--爬蟲介紹
4.
Scrapy爬蟲框架介紹
5.
Scrapy爬蟲框架——介紹
6.
scrapy爬蟲框架介紹
7.
Python爬蟲教程-32-Scrapy 爬蟲框架項目 Settings py 介紹
8.
python爬蟲入門教程-Python 爬蟲介紹
9.
python爬蟲之scrapy框架介紹
10.
Python爬蟲之Scrapy框架介紹
更多相關文章...
•
網站主機 介紹
-
網站主機教程
•
ASP.NET MVC 教程
-
ASP.NET 教程
•
Java 8 Stream 教程
•
Java Agent入門實戰(一)-Instrumentation介紹與使用
相關標籤/搜索
爬蟲-反爬蟲
爬蟲
python--爬蟲
Python爬蟲
Python爬蟲5
python爬蟲02
Python爬蟲4
Python爬蟲教學
python爬蟲-爬微博
nodeJS爬蟲
網絡爬蟲
Python
Hibernate教程
Spring教程
MyBatis教程
教程
架構
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
NLP《詞彙表示方法(六)ELMO》
2.
必看!RDS 數據庫入門一本通(附網盤鏈接)
3.
阿里雲1C2G虛擬機【99/年】羊毛黨集合啦!
4.
10秒鐘的Cat 6A網線認證儀_DSX2-5000 CH
5.
074《從零開始學Python網絡爬蟲》小記
6.
實例12--會動的地圖
7.
聽薦 | 「談笑風聲」,一次投資圈的嘗試
8.
阿里技術官手寫800多頁PDF總結《精通Java Web整合開發》
9.
設計模式之☞狀態模式實戰
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
Python爬蟲教程-01-爬蟲介紹
2.
Python爬蟲教程-30-Scrapy 爬蟲框架介紹
3.
python爬蟲實例介紹-python爬蟲--爬蟲介紹
4.
Scrapy爬蟲框架介紹
5.
Scrapy爬蟲框架——介紹
6.
scrapy爬蟲框架介紹
7.
Python爬蟲教程-32-Scrapy 爬蟲框架項目 Settings py 介紹
8.
python爬蟲入門教程-Python 爬蟲介紹
9.
python爬蟲之scrapy框架介紹
10.
Python爬蟲之Scrapy框架介紹
>>更多相關文章<<