33款你可能不知道的开源爬虫软件工具
要玩大數據,沒有數據怎么玩?這里推薦一些33款開源爬蟲軟件給大家。
2
爬蟲,即網絡爬蟲,是一種自動獲取網頁內容的程序。是搜索引擎的重要組成部分,因此搜索引擎優化很大程度上就是針對爬蟲而做出的優化。
網絡爬蟲是一個自動提取網頁的程序,它為搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析算法過濾與主題無關的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,并重復上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,并建立索引,以便之后的查詢和檢索;對于聚焦爬蟲來說,這一過程所得到的分析結果還可能對以后的抓取過程給出反饋和指導。
世界上已經成型的爬蟲軟件多達上百種,本文對較為知名及常見的開源爬蟲軟件進行梳理,按開發語言進行匯總。雖然搜索引擎也有爬蟲,但本次我匯總的只是爬蟲軟件,而非大型、復雜的搜索引擎,因為很多兄弟只是想爬取數據,而非運營一個搜索引擎。
?Java爬蟲?
2.crawlzilla
crawlzilla 是一個幫你輕松建立搜索引擎的自由軟件,有了它,你就不用依靠商業公司的搜索引擎,也不用再煩惱公司內部網站資料索引的問題。
由 nutch 專案為核心,并整合更多相關套件,并卡發設計安裝與管理UI,讓使用者更方便上手。
crawlzilla 除了爬取基本的 html 外,還能分析網頁上的文件,如( doc、pdf、ppt、ooo、rss )等多種文件格式,讓你的搜索引擎不只是網頁搜索引擎,而是網站的完整資料索引庫。
擁有中文分詞能力,讓你的搜索更精準。
crawlzilla的特色與目標,最主要就是提供使用者一個方便好用易安裝的搜索平臺。
授權協議: Apache License 2
開發語言: Java JavaScript SHELL
操作系統: Linux
項目主頁:?https://github.com/shunfa/cra...
下載地址:?http://sourceforge.net/projec...
特點:安裝簡易,擁有中文分詞功能
4.Heritrix
Heritrix 是一個由 java 開發的、開源的網絡爬蟲,用戶可以使用它來從網上抓取想要的資源。其最出色之處在于它良好的可擴展性,方便用戶實現自己的抓取邏輯。
Heritrix采用的是模塊化的設計,各個模塊由一個控制器類(CrawlController類)來協調,控制器是整體的核心。
代碼托管:https://github.com/internetar...
授權協議: Apache
開發語言: Java
操作系統: 跨平臺
特點:嚴格遵照robots文件的排除指示和META robots標簽
6.ItSucks
ItSucks是一個java web spider(web機器人,爬蟲)開源項目。支持通過下載模板和正則表達式來定義下載規則。提供一個swing GUI操作界面。
特點:提供swing GUI操作界面
8.JSpider
JSpider是一個用Java實現的WebSpider,JSpider的執行格式如下:
jspider [URL] [ConfigName]
URL一定要加上協議名稱,如:http://,否則會報錯。如果省掉ConfigName,則采用默認配置。
JSpider 的行為是由配置文件具體配置的,比如采用什么插件,結果存儲方式等等都在conf[ConfigName]目錄下設置。JSpider默認的配置種類 很少,用途也不大。但是JSpider非常容易擴展,可以利用它開發強大的網頁抓取與數據分析工具。要做到這些,需要對JSpider的原理有深入的了 解,然后根據自己的需求開發插件,撰寫配置文件。
授權協議: LGPL
開發語言: Java
操作系統: 跨平臺
特點:功能強大,容易擴展
10.MetaSeeker
是一套完整的網頁內容抓取、格式化、數據集成、存儲管理和搜索解決方案。
網絡爬蟲有多種實現方法,如果按照部署在哪里分,可以分成:
1、服務器側:一般是一個多線程程序,同時下載多個目標HTML,可以用PHP, Java, Python(當前很流行)等做,可以速度做得很快,一般綜合搜索引擎的爬蟲這樣做。但是,如果對方討厭爬蟲,很可能封掉你的IP,服務器IP又不容易 改,另外耗用的帶寬也是挺貴的。建議看一下Beautiful soap。
2、客戶端:一般實現定題爬蟲,或者是聚焦爬蟲,做綜合搜索引擎不容易成功,而垂直搜訴或者比價服務或者推薦引擎,相對容易很多,這類爬蟲不是什么頁面都 取的,而是只取你關系的頁面,而且只取頁面上關心的內容,例如提取黃頁信息,商品價格信息,還有提取競爭對手廣告信息的,搜一下Spyfu,很有趣。這類 爬蟲可以部署很多,而且可以很有侵略性,對方很難封鎖。
MetaSeeker中的網絡爬蟲就屬于后者。
MetaSeeker工具包利用Mozilla平臺的能力,只要是Firefox看到的東西,它都能提取。
MetaSeeker工具包是免費使用的,下載地址:www.gooseeker.com/cn/node/download/front
特點:網頁抓取、信息提取、數據抽取工具包,操作簡單
12.Spiderman
Spiderman 是一個基于微內核+插件式架構的網絡蜘蛛,它的目標是通過簡單的方法就能將復雜的目標網頁信息抓取并解析為自己所需要的業務數據。
怎么使用?
首先,確定好你的目標網站以及目標網頁(即某一類你想要獲取數據的網頁,例如網易新聞的新聞頁面)
然后,打開目標頁面,分析頁面的HTML結構,得到你想要數據的XPath,具體XPath怎么獲取請看下文。
最后,在一個xml配置文件里填寫好參數,運行Spiderman吧!
授權協議: Apache
開發語言: Java
操作系統: 跨平臺
特點:靈活、擴展性強,微內核+插件式架構,通過簡單的配置就可以完成數據抓取,無需編寫一句代碼
14.Web-Harvest
Web-Harvest是一個Java開源Web數據抽取工具。它能夠收集指定的Web頁面并從這些頁面中提取有用的數據。Web-Harvest主要是運用了像XSLT,XQuery,正則表達式等這些技術來實現對text/xml的操作。
其實現原理是,根據預先定義的配置文件用httpclient獲取頁面的全部內容(關于httpclient的內容,本博有些文章已介紹),然后運用XPath、XQuery、正則表達式等這些技術來實現對text/xml的內容篩選操作,選取精確的數據。前兩年比較火的垂直搜索(比如:酷訊等)也是采用類似的原理實現的。Web-Harvest應用,關鍵就是理解和定義配置文件,其他的就是考慮怎么處理數據的Java代碼。當然在爬蟲開始前,也可以把Java變量填充到配置文件中,實現動態的配置。
授權協議: BSD
開發語言: Java
特點:運用XSLT、XQuery、正則表達式等技術來實現對Text或XML的操作,具有可視化的界面
16.YaCy
YaCy基于p2p的分布式Web搜索引擎.同時也是一個Http緩存代理服務器.這個項目是構建基于p2p Web索引網絡的一個新方法.它可以搜索你自己的或全局的索引,也可以Crawl自己的網頁或啟動分布式Crawling等.
授權協議: GPL
開發語言: Java Perl
操作系統: 跨平臺
特點:基于P2P的分布式Web搜索引擎
?Python爬蟲?
18.PyRailgun
這是一個非常簡單易用的抓取工具。支持抓取javascript渲染的頁面的簡單實用高效的python網頁爬蟲抓取模塊
授權協議: MIT
開發語言: Python
操作系統: 跨平臺 Windows Linux OS X
特點:簡潔、輕量、高效的網頁抓取框架
備注:此軟件也是由國人開放
github下載:https://github.com/princehaku...
20.hispider
HiSpider is a fast and high performance spider with high speed
嚴格說只能是一個spider系統的框架, 沒有細化需求, 目前只是能提取URL, URL排重, 異步DNS解析, 隊列化任務, 支持N機分布式下載, 支持網站定向下載(需要配置hispiderd.ini whitelist).
特征和用法:
基于unix/linux系統的開發
異步DNS解析
URL排重
支持HTTP 壓縮編碼傳輸 gzip/deflate
字符集判斷自動轉換成UTF-8編碼
文檔壓縮存儲
支持多下載節點分布式下載
支持網站定向下載(需要配置 hispiderd.ini whitelist )
可通過?http://127.0.0.1:3721/ 查看下載情況統計,下載任務控制(可停止和恢復任務)
依賴基本通信庫libevbase 和 libsbase (安裝的時候需要先安裝這個兩個庫)
工作流程:
從中心節點取URL(包括URL對應的任務號, IP和port,也可能需要自己解析)
連接服務器發送請求
等待數據頭判斷是否需要的數據(目前主要取text類型的數據)
等待完成數據(有length頭的直接等待說明長度的數據否則等待比較大的數字然后設置超時)
數據完成或者超時, zlib壓縮數據返回給中心服務器,數據可能包括自己解析DNS信息, 壓縮后數據長度+壓縮后數據,如果出錯就直接返回任務號以及相關信息
中心服務器收到帶有任務號的數據, 查看是否包括數據, 如果沒有數據直接置任務號對應的狀態為錯誤, 如果有數據提取數據種link然后存儲數據到文檔文件
完成后返回一個新的任務
授權協議: BSD
開發語言: C/C++
操作系統: Linux
特點:支持多機分布式下載, 支持網站定向下載
22.Methabot
Methabot 是一個經過速度優化的高可配置的 WEB、FTP、本地文件系統的爬蟲軟件。
授權協議: 未知
開發語言: C/C++
操作系統: Windows Linux
特點:過速度優化、可抓取WEB、FTP及本地文件系統
源代碼:http://www.oschina.net/code/t...
C#爬蟲
24.Sinawler
國內第一個針對微博數據的爬蟲程序!原名“新浪微博爬蟲”。
登錄后,可以指定用戶為起點,以該用戶的關注人、粉絲為線索,延人脈關系搜集用戶基本信息、微博數據、評論數據。
該應用獲取的數據可作為科研、與新浪微博相關的研發等的數據支持,但請勿用于商業用途。該應用基于.NET2.0框架,需SQL SERVER作為后臺數據庫,并提供了針對SQL Server的數據庫腳本文件。
另外,由于新浪微博API的限制,爬取的數據可能不夠完整(如獲取粉絲數量的限制、獲取微博數量的限制等)
本程序版權歸作者所有。你可以免費: 拷貝、分發、呈現和表演當前作品,制作派生作品。 你不可將當前作品用于商業目的。
5.x版本已經發布! 該版本共有6個后臺工作線程:爬取用戶基本信息的機器人、爬取用戶關系的機器人、爬取用戶標簽的機器人、爬取微博內容的機器人、爬取微博評論的機器人,以及調節請求頻率的機器人。更高的性能!最大限度挖掘爬蟲潛力! 以現在測試的結果看,已經能夠滿足自用。
本程序的特點:
6個后臺工作線程,最大限度挖掘爬蟲性能潛力!
界面上提供參數設置,靈活方便
拋棄app.config配置文件,自己實現配置信息的加密存儲,保護數據庫帳號信息
自動調整請求頻率,防止超限,也避免過慢,降低效率
任意對爬蟲控制,可隨時暫停、繼續、停止爬蟲
良好的用戶體驗
授權協議: GPLv3
開發語言: C# .NET
操作系統: Windows
26.Web Crawler
mart and Simple Web Crawler是一個Web爬蟲框架。集成Lucene支持。該爬蟲可以從單個鏈接或一個鏈接數組開始,提供兩種遍歷模式:最大迭代和最大深度。可以設置 過濾器限制爬回來的鏈接,默認提供三個過濾器ServerFilter、BeginningPathFilter和 RegularExpressionFilter,這三個過濾器可用AND、OR和NOT聯合。在解析過程或頁面加載前后都可以加監聽器。介紹內容來自Open-Open
開發語言: Java
操作系統: 跨平臺
授權協議: LGPL
特點:多線程,支持抓取PDF/DOC/EXCEL等文檔來源
28.OpenWebSpider
OpenWebSpider是一個開源多線程Web Spider(robot:機器人,crawler:爬蟲)和包含許多有趣功能的搜索引擎。
授權協議: 未知
開發語言: PHP
操作系統: 跨平臺
特點:開源多線程網絡爬蟲,有許多有趣的功能
30.ThinkUp
ThinkUp 是一個可以采集推特,facebook等社交網絡數據的社會媒體視角引擎。通過采集個人的社交網絡賬號中的數據,對其存檔以及處理的交互分析工具,并將數據圖形化以便更直觀的查看。
授權協議: GPL
開發語言: PHP
操作系統: 跨平臺
github源碼:https://github.com/ThinkUpLLC...
特點:采集推特、臉譜等社交網絡數據的社會媒體視角引擎,可進行交互分析并將結果以可視化形式展現
32.Ebot
Ebot 是一個用 ErLang 語言開發的可伸縮的分布式網頁爬蟲,URLs 被保存在數據庫中可通過 RESTful 的 HTTP 請求來查詢。
授權協議: GPLv3
開發語言: ErLang
操作系統: 跨平臺
github源代碼:https://github.com/matteoreda...
項目主頁:?http://www.redaelli.org/matte...
特點:可伸縮的分布式網頁爬蟲
?Ruby爬蟲?
33.Spidr
Spidr 是一個Ruby 的網頁爬蟲庫,可以將整個網站、多個網站、某個鏈接完全抓取到本地。
開發語言: Ruby
授權協議:MIT
特點:可將一個或多個網站、某個鏈接完全抓取到本地
以上內容來自36大數據(36dsj.com):36大數據:33款可用來抓數據的開源爬蟲軟件工具
∑編輯?|?Gemini
來源 | 知乎 數據分析師
算法數學之美微信公眾號歡迎賜稿
稿件涉及數學、物理、算法、計算機、編程等相關領域,經采用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
總結
以上是生活随笔為你收集整理的33款你可能不知道的开源爬虫软件工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盘点80年前欧美最为匪夷所思的发明
- 下一篇: 15名优秀女科学家拟获重量级荣誉