scrapy定義:
scrapy是用python 實現(xiàn)一個為了爬取網站數(shù)據、提取結構性數(shù)據而編寫的應用框架,用途非常廣泛。?
異步: 調用在發(fā)出之后,這個調用就直接返回,不管有無結果。
非阻塞:關注的是程序在等待調用結果(消息,返回值)時的狀態(tài),指在不能立刻得到結果之前,該調用不會阻塞當前線程
Scrapy Englne(引擎):
? ? 負責Spider(爬蟲)、item pipeline(管道)、Downloader(下載器)、scheduler(調度器)中間的通訊,信號、數(shù)據、傳遞等。
Scheduler(調度器):
? ? 它負責接受引擎發(fā)送過來的request請求,并按照一定的方式進行整理排隊,入隊,當引擎需要時、交還給引擎。
Downloader(下載器):
? ? 負責下載Scrapy Engine (引擎)發(fā)送過來的的所有requests請求,并將其獲取到的Responses交給Scrapy Engine(引擎),由引擎交給Spider來處理,
Spider(爬蟲):
? ? 負責處理所有Responses,從中分析提取數(shù)據,獲取ltem字段需要的數(shù)據,并將西藥跟進的URL提交給引擎,再次進入Scheduler(調度器)。
ltem Pipeline(管道):
? ? 它負責處理spider中過去到Item,并進行進行后期處理(詳細分析、過濾、存儲等)的地方。
Downloader Middlewares(下載中間件):
? ? 可以自定義擴展下載功能的組件(代理、cokies等).
Spider Middlewares(spider中間件):
? ? 可以自定義擴展和操作引擎和Spider中間通信的功能組件(比如進入Spider的Response;和從Spider出去的Requests)。
scrapy框架 可以直接用 response.css 和 response.xpath 等解析器直接進行解析。
在scrapy框架中進行數(shù)據解析是 用到 extract()方法和extract_first('').
創(chuàng)建目錄:scrapy? startproject 爬蟲名稱
創(chuàng)建爬蟲文件: scrapy genspider 爬蟲名字 域名
運行爬蟲文件: scrapy crawl 爬蟲文件名稱
response:
response 相應結果
response.url 得到請求的url
response.text 得到相應的字符串內容
response.status 相應狀態(tài)碼
response.headers 得到響應頭部
scrapy框架下載圖片:
Scrapy提供了一個 item pipeline ,來下載屬于某個特定項目的圖片,比如,當你抓取產品時,也想把它們的圖片下載到本地。
在 settings 中可以將管道打開。