Learning Scrapy筆記(一)- Scrapy簡單介紹


 

Scrapy簡述

Scrapy十一個健壯的,用來從互聯網上抓取數據的web框架,Scrapy只需要一個配置文件就能組合各種組件和配置選項,並且Scrapy是基於事件(event-based)的架構,使得我們可以級聯多個操作,包括清理、組織、存儲數據到數據庫等等。假設現在你要抓取一個網站,這個網站的每一頁都有一百個條目,Scrapy可以毫不費勁地同時對這個網站發起16個請求,假如每個請求需要一秒鍾來完成,你就相當於每秒鍾爬取16個頁面,相當於每秒鍾生成了1600個條目,假如要把這些條目同時存儲到雲上,每一個條目的存儲需要3秒鍾(假設的),為了處理這16個請求,就需要運行1600 *3 = 4800個並發的寫入請求,對於一個傳統的多線程程序來說,就需要轉換成4800個線程,這會對系統造成極大的壓力。而對於Scrapy來說,只要你的硬件過關, 4800個並發請求是沒有問題的。

 

使用Scrapy的更多理由

Scrapy已經發展了5年有多,已經變得成熟和穩定,除了上面提到的性能優點外,Scrapy還有以下幾點優點:

  • Scrapy可以處理不完整的HTML

  你可以在Scrapy中使用Beautiful Soup或者lxml,但Scrapy已經提供了selectors(一個在lxml的基礎上提供了更高級的接口),可以高效地處理不完整的HTML代碼

  • 活躍的Scrapy社區

  Scrapy擁有一個活躍的社區,尤其是在Stack Overflow(https://stackoverflow.com/questions/tagged/Scrapy)上有上千個問題的討論,更多的社區論壇可以參考這里:http://Scrapy.org/community/

  • 由社區維護的具有良好架構的代碼

  Scrapy要求你用標准的方式去組織你的代碼,所以你在與他人合作時,別人不用苦苦研究你那擁有奇淫技巧的爬蟲

  • 新特性越來越多且質量穩定

  通過觀察Scrapy的新聞發布頁(http://doc.Scrapy.org/en/latest/news.html),就可以看到在增加的新特性和bug修正

 

忠告

在爬取信息的時候有兩個最重要的原則一定要堅守:

  • 不要產生類似於DOS攻擊的行為

  一個普通的網站瀏覽者會花上幾秒鍾去瀏覽一個網頁,但是一個爬蟲可以在一秒鍾內下載幾十個網頁,這會對網站和網站管理員造成壓力。通過使用節流閥來自動調整你的下載速率至普通用戶級別,如果你的爬取響應時間越來越長,就要減少你的爬取強度。而Scrapy都提供了以上功能

  • 不要侵犯他人的版權

  在你要爬取一個網站之前,最好先查看版權信息聲明,弄明白你被允許的行動范圍,大多數的網站都允許你下載他們的信息,前提是你不聲明對這些信息的版權。要注意的是,Scrapy會使用你的爬蟲名稱作為User-Agent,來讓網站管理員識別出這是一個由爬蟲發出的請求。Scrapy也提供一個名為RobotsTxtMiddleware的插件,這個插件可以自動遵守網站的robots.txt協議。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM