Scrapy(官網 http://scrapy.org/)是一款功能強大的,用戶可定製的網絡爬蟲軟件包。其官方描述稱:"html
"git
Scrapy在github中有源碼託管https://github.com/scrapy/scrapy,其安裝能夠參考github中提供的安裝方法(大百度中也提供了不少安裝方法的描述)。另外網站1和網站2提供了scrapy的使用方法和簡單實例(小編後續隨筆也會簡單寫一個scrapy實例,供你們參考)。github
Scrapy的爬蟲原理:web
」盜用「的scrapy 官網中的scrapy核心框架圖數據庫
Scrapy Engine是scrapy軟件的核心,他負責各個組件的協調處理api
Scheduler是調度器,負責爬去隊列的管理,如Request的入隊和出隊管理網絡
Item Pipeline 是抓取內容的核心組件,用戶想要獲取的內容能夠寫入item 而後再pipeline中設計數據的流向好比寫入文件或是持久化到數據庫中框架
Downloader 則是scrapy與web site接觸的端口,負責根據Request 請求網頁而後以response的形式返回用戶處理接口(默認是 spider的parse函數)異步
Spider則是用戶定製興趣內容的模塊,在scrapy的spiders中內置了BaseSpider,CSVFeedSpider,CrawlerSpider,用戶能夠根據狀況選擇合適spider繼承與開發scrapy
Spider Middlewares則是Spider與Scrapy Engine 的中間層,用戶能夠個性化定義Spider向Engine傳輸過程
Scrpay的運行過程:
(1)Engine從Spider中獲取一個須要爬取的URL(從spider中start_url獲取),並以Request的形式在Scheduler中列隊。
(2)Scheduler根據列隊狀況,把Request發送給Downloader,Downloader根據Request請求網頁,並獲取網頁內容。
(3)網頁內容以Response的形式通過Engine發送給Spider,並根據用戶解析生成Item,發送給Pipeline。
(4)Pipeline根據得到的item和settings中的設置,處理item(process_item)把數據輸出到文件或是數據庫中。
上述過程反覆進行,直到沒有新的請求爲止(此過程是一個異步處理過程)。
我的整理的Scrapy資源列表(望笑納):
(1)scrapy中文教程
http://scrapy-chs.readthedocs.io/zh_CN/latest/intro/overview.html
(2)一個不錯的scrapy學習博客
http://blog.csdn.net/column/details/younghz-scrapy.html
(3)scrapy 官方wiki
https://github.com/scrapy/scrapy/wiki
(4)scrapy實例