spash和selenium淺析


Splash是什么:

  Splash是一個Javascript渲染服務。它是一個實現了HTTP API的輕量級瀏覽器,Splash是用Python實現的,同時使用Twisted和QT。Twisted(QT)用來讓服務具有異步處理能力,以發揮webkit的並發能力。

為什么要有Splash:

  為了更加有效的制作網頁爬蟲,由於目前很多的網頁通過javascript模式進行交互,簡單的爬取網頁模式無法勝任javascript頁面的生成和ajax網頁的爬取,同時通過分析連接請求的方式來落實局部連接數據請求,相對比較復雜,尤其是對帶有特定時間戳算法的頁面,分析難度較大,效率不高。而通過調用瀏覽器模擬頁面動作模式,需要使用瀏覽器,無法實現異步和大規模爬取需求。鑒於上述理由Splash也就有了用武之地。一個頁面渲染服務器,返回渲染后的頁面,便於爬取,便於規模應用

Selenium是什么:

ason Huggins在2004年發起了Selenium項目,當時身處ThoughtWorks的他,為了不想讓自己的時間浪費在無聊的重復性工作中,幸運的是,所有被測試的瀏覽器都支持Javascript。Jason和他所在的團隊采用Javascript編寫一種測試工具來驗證瀏覽器頁面的行為;這個JavaScript類庫就是Selenium core,同時也是seleniumRC、Selenium IDE的核心組件。Selenium由此誕生。

關於Selenium的命名比較有意思,當時QTP mercury是主流的商業自化工具,是化學元素汞(俗稱水銀),而Selenium是開源自動化工具,是化學元素硒,硒可以對抗汞。

因為Selenium和Webdriver的合並,所以,Selenium 2.0由此誕生。簡單用公式表示為:Selenium 2.0 = Selenium 1.0 + WebDriver

兩者的區別:

selenium是瀏覽器測試自動化工具,很容易完成鼠標點擊,翻頁等動作,確定是一次只能加載一個頁面,無法異步渲染頁面,也就限制了selenium爬蟲的抓取效率

splash可以實現異步渲染頁面,可以同時渲染幾個頁面。缺點是在頁面點擊,,模擬登陸方面沒有selenium靈活。

 


免責聲明!

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



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