提供防水、抓漏、壁癌處理、地坪工程相關案件,線上超過上百筆精選裝潢案件 都能在這找到屬於自己的合適 | 店面/新家裝潢後一片混亂?屋內外除塵清掃 粗清細清免煩惱,專人諮詢服務,敬請洽詢 |
[JaveScript] 33款可用來抓數據的開源爬蟲軟體工具 |
房東:記者 發表時間:2016-10-31 | [檢舉] |
要玩大數據,沒有數據怎麼玩?這裡推薦一些33款開源爬蟲軟體給大家。 爬蟲,即網絡爬蟲,是一種自動獲取網頁內容的程序。是搜尋引擎的重要組成部分,因此搜尋引擎優化很大程度上就是針對爬蟲而做出的優化。 網絡爬蟲是一個自動提取網頁的程序,它為搜尋引擎從全球資訊網上下載網頁,是搜尋引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。聚焦爬蟲的工作流程較為複雜,需要根據一定的網頁分析算法過濾與主題無關的連結,保留有用的連結並將其放入等待抓取的URL隊列。然後,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重複上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索;對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給出反饋和指導。 ADVERTISEMENT 世界上已經成型的爬蟲軟體多達上百種,本文對較為知名及常見的開源爬蟲軟體進行梳理,按開發語言進行匯總。雖然搜尋引擎也有爬蟲,但本次我匯總的只是爬蟲軟體,而非大型、複雜的搜尋引擎,因為很多兄弟只是想爬取數據,而非運營一個搜尋引擎。 Java爬蟲 1. Arachnid Arachnid是一個基於Java的web spider框架.它包含一個簡單的HTML剖析器能夠分析包含HTML內容的輸入流.通過實現Arachnid的子類就能夠開發一個簡單的Web spiders並能夠在Web站上的每個頁面被解析之後增加幾行代碼調用。 Arachnid的下載包中包含兩個spider應用程式例子用於演示如何使用該框架。 ADVERTISEMENT 特點:微型爬蟲框架,含有一個小型HTML解析器 許\可證:GPL 2、crawlzilla crawlzilla 是一個幫你輕鬆建立搜尋引擎的自由軟體,有了它,你就不用依靠商業公司的搜尋引擎,也不用再煩惱公司內部網站資料索引的問題。 由 nutch 專案為核心,並整合更多相關套件,並卡發設計安裝與管理UI,讓使用者更方便上手。 crawlzilla 除了爬取基本的 html 外,還能分析網頁上的文件,如( doc、pdf、ppt、ooo、rss )等多種文件格式,讓你的搜尋引擎不只是網頁搜尋引擎,而是網站的完整資料索引庫。 擁有中文分詞能力,讓你的搜索更精準。 crawlzilla的特色與目標,最主要就是提供使用者一個方便好用易安裝的搜索平台。 授權協議: Apache License 2 開發語言: Java JavaScript SHELL 作業系統: Linux 特點:安裝簡易,擁有中文分詞功\能 3、Ex-Crawler Ex-Crawler 是一個網頁爬蟲,採用 Java 開發,該項目分成兩部分,一個是守護進程,另外一個是靈活可配置的 Web 爬蟲。使用資料庫存儲網頁信息。
特點:由守護進程執行,使用資料庫存儲網頁信息 4、Heritrix Heritrix 是一個由 java 開發的、開源的網絡爬蟲,用戶可以使用它來從網上抓取想要的資源。其最出色之處在於它良好的可擴展性,方便用戶實現自己的抓取邏輯。 Heritrix採用的是模塊化的設計,各個模塊由一個控制器類(CrawlController類)來協調,控制器是整體的核心。 代碼託管:https://github.com/internetarchive/heritrix3
特點:嚴格遵照robots文件的排除指示和META robots標籤 5、heyDr heyDr是一款基於java的輕量級開源多線程垂直檢索爬蟲框架,遵循GNU GPL V3協議。 用戶可以通過heyDr構建自己的垂直資源爬蟲,用於搭建垂直搜尋引擎前期的數據準備。
特點:輕量級開源多線程垂直檢索爬蟲框架 6、ItSucks ItSucks是一個java web spider(web機器人,爬蟲)開源項目。支持通過下載模板和正則表達式來定義下載規則。提供一個swing GUI操作介面。 特點:提供swing GUI操作介面 7、jcrawl jcrawl是一款小巧性能優良的的web爬蟲,它可以從網頁抓取各種類型的文件,基於用戶定義的符號,比如email,qq.
特點:輕量、性能優良,可以從網頁抓取各種類型的文件 8、JSpider JSpider是一個用Java實現的WebSpider,JSpider的執行格式如下: jspider [URL] [ConfigName] URL一定要加上協議名稱,如:http://,否則會報錯。如果省掉ConfigName,則採用默認配置。 JSpider 的行為是由配置文件具體配置的,比如採用什麼插件,結果存儲方式等等都在conf\\[ConfigName]\\目錄下設置。JSpider默認的配置種類 很少,用途也不大。但是JSpider非常容易擴展,可以利用它開發強大的網頁抓取與數據分析工具。要做到這些,需要對JSpider的原理有深入的了 解,然後根據自己的需求開發插件,撰寫配置文件。
特點:功\能強大,容易擴展 9、Leopdo 用JAVA編寫的web 搜索和爬蟲,包括全文和分類垂直搜索,以及分詞系統
特點:包括全文和分類垂直搜索,以及分詞系統 10、MetaSeeker 是一套完整的網頁內容抓取、格式化、數據集成、存儲管理和搜索解決方案。 網絡爬蟲有多種實現方法,如果按照部署在哪裡分,可以分成: 伺服器側: 一般是一個多線程程序,同時下載多個目標HTML,可以用PHP, Java, Python(當前很流行)等做,可以速度做得很快,一般綜合搜尋引擎的爬蟲這樣做。但是,如果對方討厭爬蟲,很可能封掉你的IP,伺服器IP又不容易 改,另外耗用的帶寬也是挺貴的。建議看一下Beautiful soap。 客戶端: 一般實現定題爬蟲,或者是聚焦爬蟲,做綜合搜尋引擎不容易成功\,而垂直搜訴或者比價服務或者推薦引擎,相對容易很多,這類爬蟲不是什麼頁面都 取的,而是只取你關係的頁面,而且只取頁面上關心的內容,例如提取黃頁信息,商品價格信息,還有提取競爭對手廣告信息的,搜一下Spyfu,很有趣。這類 爬蟲可以部署很多,而且可以很有侵略性,對方很難封鎖。 MetaSeeker中的網絡爬蟲就屬於後者。 MetaSeeker工具包利用Mozilla平台的能力,只要是Firefox看到的東西,它都能提取。 MetaSeeker工具包是免費使用的,下載地址:www.gooseeker.com/cn/node/download/front 特點:網頁抓取、信息提取、數據抽取工具包,操作簡單 11、Playfish playfish是一個採用java技術,綜合應用多個開源java組件實現的網頁抓取工具,通過XML配置文件實現高度可定製性與可擴展性的網頁抓取工具 應用開源jar包包括httpclient(內容讀取),dom4j(配置文件解析),jericho(html解析),已經在 war包的lib下。 這個項目目前還很不成熟,但是功\能基本都完成了。要求使用者熟悉XML,熟悉正則表達式。目前通過這個工具可以抓取各類論壇,貼吧,以及各類CMS系統。像Discuz!,phpbb,論壇跟博客的文章,通過本工具都可以輕鬆抓取。抓取定義完全採用XML,適合Java開發人員使用。 使用方法:
系統自帶了3個例子,分別為baidu.xml抓取百度知道,example.xml抓取我的javaeye的博客,bbs.xml抓取一個採用 discuz論壇的內容。
特點:通過XML配置文件實現高度可定製性與可擴展性 12、Spiderman Spiderman 是一個基於微內核+插件式架構的網絡蜘蛛,它的目標是通過簡單的方法就能將複雜的目標網頁信息抓取並解析為自己所需要的業務數據。 怎麼使用? 首先,確定好你的目標網站以及目標網頁(即某一類你想要獲取數據的網頁,例如網易新聞的新聞頁面) 然後,打開目標頁面,分析頁面的HTML結構,得到你想要數據的XPath,具體XPath怎麼獲取請看下文。 最後,在一個xml配置文件里填寫好參數,運行Spiderman吧!
特點:靈活、擴展性強,微內核+插件式架構,通過簡單的配置就可以完成數據抓取,無需編寫一句代碼 13、webmagic webmagic的是一個無須配置、便於二次開發的爬蟲框架,它提供簡單靈活的API,只需少量代碼即可實現一個爬蟲。 webmagic採用完全模塊化的設計,功\能覆蓋\整個爬蟲的生命周期(連結提取、頁面下載、內容抽取、持久化),支持多線程抓取,分布式抓取,並支持自動重試、自定義UA/cookie等功\能。 webmagic包含強大的頁面抽取功\能,開發者可以便捷的使用css selector、xpath和正則表達式進行連結和內容的提取,支持多個選擇器鏈式調用。 webmagic的使用文檔:http://webmagic.io/docs/ 查看原始碼:http://git.oschina.net/flashsword20/webmagic
特點:功\能覆蓋\整個爬蟲生命周期,使用Xpath和正則表達式進行連結和內容的提取。 備註:這是一款國產開源軟體,由 黃億華貢獻 14、Web-Harvest Web-Harvest是一個Java開源Web數據抽取工具。它能夠收集指定的Web頁面並從這些頁面中提取有用的數據。Web-Harvest主要是運用了像XSLT,XQuery,正則表達式等這些技術來實現對text/xml的操作。 其實現原理是,根據預先定義的配置文件用httpclient獲取頁面的全部內容(關於httpclient的內容,本博有些文章已介紹),然後運用XPath、XQuery、正則表達式等這些技術來實現對text/xml的內容篩選操作,選取精確的數據。前兩年比較火的垂直搜索(比如:酷訊等)也是採用類似的原理實現的。Web-Harvest應用,關鍵就是理解和定義配置文件,其他的就是考慮怎麼處理數據的Java代碼。當然在爬蟲開始前,也可以把Java變量填充到配置文件中,實現動態的配置。
特點:運用XSLT、XQuery、正則表達式等技術來實現對Text或XML的操作,具有可視化的介面 15、WebSPHINX WebSPHINX是一個Java類包和Web爬蟲的交互式開發環境。Web爬蟲(也叫作機器人或蜘蛛)是可以自動瀏覽與處理Web頁面的程序。WebSPHINX由兩部分組成:爬蟲工作平台和WebSPHINX類包。 授權協議:Apache 開發語言:Java 特點:由兩部分組成:爬蟲工作平台和WebSPHINX類包 16、YaCy YaCy基於p2p的分布式Web搜尋引擎.同時也是一個Http緩存代理伺服器.這個項目是構建基於p2p Web索引網絡的一個新方法.它可以搜索你自己的或全局的索引,也可以Crawl自己的網頁或啟動分布式Crawling等.
特點:基於P2P的分布式Web搜尋引擎 Python爬蟲 17、QuickRecon QuickRecon是一個簡單的信息收集工具,它可以幫助你查找子域名名稱、perform zone transfe、收集電子郵件地址和使用microformats尋找人際關係等。QuickRecon使用python編寫,支持linux和 windows作業系統。
特點:具有查找子域名名稱、收集電子郵件地址並尋找人際關係等功\能 18、PyRailgun 這是一個非常簡單易用的抓取工具。支持抓取javascript渲染的頁面的簡單實用高效的python網頁爬蟲抓取模塊
特點:簡潔、輕量、高效的網頁抓取框架 備註:此軟體也是由國人開放 github下載:https://github.com/princehaku/pyrailgun#readme 19、Scrapy Scrapy 是一套基於基於Twisted的異步處理框架,純python實現的爬蟲框架,用戶只需要定製開發幾個模塊就可以輕鬆的實現一個爬蟲,用來抓取網頁內容以及各種圖片,非常之方便∼
github原始碼:https://github.com/scrapy/scrapy 特點:基於Twisted的異步處理框架,文檔齊全 C++爬蟲 20、hispider HiSpider is a fast and high performance spider with high speed 嚴格說只能是一個spider系統的框架, 沒有細化需求, 目前只是能提取URL, URL排重, 異步DNS解析, 隊列化任務, 支持N機分布式下載, 支持網站定向下載(需要配置hispiderd.ini whitelist). 特徵和用法:
工作流程:
授權協議: BSD 開發語言: C/C++ 作業系統: Linux 特點:支持多機分布式下載, 支持網站定向下載 21、larbin larbin是一種開源的網絡爬蟲/網絡蜘蛛,由法國的年輕人 Sébastien Ailleret獨立開發。larbin目的是能夠跟蹤頁面的url進行擴展的抓取,最後為搜尋引擎提供廣泛的數據來源。Larbin只是一個爬蟲,也就 是說larbin只抓取網頁,至於如何parse的事情則由用戶自己完成。另外,如何存儲到資料庫以及建立索引的事情 larbin也不提供。一個簡單的larbin的爬蟲可以每天獲取500萬的網頁。 利用larbin,我們可以輕易的獲取/確定單個網站的所有連結,甚至可以鏡像一個網站;也可以用它建立url 列表群,例如針對所有的網頁進行 url retrive後,進行xml的聯結的獲取。或者是 mp3,或者定製larbin,可以作為搜尋引擎的信息的來源。
特點:高性能的爬蟲軟體,只負責抓取不負責解析 22、Methabot Methabot 是一個經過速度優化的高可配置的 WEB、FTP、本地文件系統的爬蟲軟體。
特點:過速度優化、可抓取WEB、FTP及本地文件系統 原始碼:http://www.oschina.net/code/tag/methabot C#爬蟲 23、NWebCrawler NWebCrawler是一款開源,C#開發網絡爬蟲程序。 特性:
授權協議: GPLv2 開發語言: C# 作業系統: Windows 項目主頁:http://www.open-open.com/lib/view/home/1350117470448 特點:統計信息、執行過程可視化 24、Sinawler 國內第一個針對微博數據的爬蟲程序!原名「新浪微博爬蟲」。 登錄後,可以指定用戶為起點,以該用戶的關注人、粉絲為線索,延人脈關係搜集用戶基本信息、微博數據、評論數據。 該應用獲取的數據可作為科研、與新浪微博相關的研發等的數據支持,但請勿用於商業用途。該應用基於.NET2.0框架,需SQL SERVER作為後台資料庫,並提供了針對SQL Server的資料庫腳本文件。 另外,由於新浪微博API的限制,爬取的數據可能不夠完整(如獲取粉絲數量的限制、獲取微博數量的限制等) 本程序版權歸作者所有。你可以免費: 拷貝、分發、呈現和表演當前作品,製作派生作品。 你不可將當前作品用於商業目的。 5.x版本已經發布! 該版本共有6個後台工作線程:爬取用戶基本信息的機器人、爬取用戶關係的機器人、爬取用戶標籤的機器人、爬取微博內容的機器人、爬取微博評論的機器人,以及調節請求頻率的機器人。更高的性能!最大限度挖掘爬蟲潛力! 以現在測試的結果看,已經能夠滿足自用。 本程序的特點:
授權協議: GPLv3 開發語言: C# .NET 作業系統: Windows 25、spidernet spidernet是一個以遞歸樹為模型的多線程web爬蟲程序, 支持text/html資源的獲取. 可以設定爬行深度, 最大下載字節數限制, 支持gzip解碼, 支持以gbk(gb2312)和utf8編碼的資源; 存儲於sqlite數據文件. 源碼中TODO:標記描述了未完成功\能, 希望提交你的代碼.
github原始碼:https://github.com/nsnail/spidernet 特點:以遞歸樹為模型的多線程web爬蟲程序,支持以GBK (gb2312)和utf8編碼的資源,使用sqlite存儲數據 26、Web Crawler mart and Simple Web Crawler是一個Web爬蟲框架。集成Lucene支持。該爬蟲可以從單個連結或一個連結數組開始,提供兩種遍歷模式:最大疊代和最大深度。可以設置 過濾器限制爬回來的連結,默認提供三個過濾器ServerFilter、BeginningPathFilter和 RegularExpressionFilter,這三個過濾器可用AND、OR和NOT聯合。在解析過程或頁面加載前後都可以加監聽器。介紹內容來自Open-Open
特點:多線程,支持抓取PDF/DOC/EXCEL等文檔來源 27、網絡礦工 網站數據採集軟體 網絡礦工採集器(原soukey採摘) Soukey採摘網站數據採集軟體是一款基於.Net平台的開源軟體,也是網站數據採集軟體類型中唯一一款開源軟體。儘管Soukey採摘開源,但並不會影響軟體功\能的提供,甚至要比一些商用軟體的功\能還要豐富。
特點:功\能豐富,毫不遜色於商業軟體 PHP爬蟲 28、OpenWebSpider OpenWebSpider是一個開源多線程Web Spider(robot:機器人,crawler:爬蟲)和包含許\多有趣功\能的搜尋引擎。
特點:開源多線程網絡爬蟲,有許\多有趣的功\能 29、PhpDig PhpDig是一個採用PHP開發的Web爬蟲和搜尋引擎。通過對動態和靜態頁面進行索引建立一個詞彙表。當搜索查詢時,它將按一定的排序規則顯示包含關 鍵字的搜索結果頁面。PhpDig包含一個模板系統並能夠索引PDF,Word,Excel,和PowerPoint文檔。PHPdig適用於專業化更 強、層次更深的個性化搜尋引擎,利用它打造針對某一領域的垂直搜尋引擎是最好的選擇。 演示:http://www.phpdig.net/navigation.php?action=demo
特點:具有採集網頁內容、提交表單功\能 30、ThinkUp ThinkUp 是一個可以採集推特,facebook等社交網絡數據的社會媒體視角引擎。通過採集個人的社交網絡帳號中的數據,對其存檔以及處理的交互分析工具,並將數據圖形化以便更直觀的查看。
github源碼:https://github.com/ThinkUpLLC/ThinkUp 特點:採集推特、臉譜等社交網絡數據的社會媒體視角引擎,可進行交互分析並將結果以可視化形式展現 31、微購 微購社會化購物系統是一款基於ThinkPHP框架開發的開源的購物分享系統,同時它也是一套針對站長、開源的的淘寶客網站程序,它整合了淘寶、天貓、淘寶客等300多家商品數據採集接口,為廣大的淘寶客站長提供傻瓜式淘客建站服務,會HTML就會做程序模板,免費開放下載,是廣大淘客站長的首選。 授權協議: GPL 開發語言: PHP 作業系統: 跨平台 ErLang爬蟲 32、Ebot Ebot 是一個用 ErLang 語言開發的可伸縮的分布式網頁爬蟲,URLs 被保存在資料庫中可通過 RESTful 的 HTTP 請求來查詢。
github原始碼:https://github.com/matteoredaelli/ebot 項目主頁: http://www.redaelli.org/matteo/blog/projects/ebot 特點:可伸縮的分布式網頁爬蟲 Ruby爬蟲 33、Spidr Spidr 是一個Ruby 的網頁爬蟲庫,可以將整個網站、多個網站、某個連結完全抓取到本地。
特點:可將一個或多個網站、某個連結完全抓取到本地 |
廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! |