亚洲国产AV一区二区三区久久_乱人妻中文字幕视频_91麻豆精品国产一级_精品国产欧美另类一区

您的當(dāng)前位置: 首頁>>硚口商學(xué)院>>硚口SEO優(yōu)化

硚口各大主流編程語言常用爬蟲框架以及優(yōu)劣分析

瀏覽量(63019) 時(shí)間:2020-09-07

      目前市場(chǎng)上爬蟲框架有很多,不同語言不同類型的爬蟲框架都有,然而在開發(fā)預(yù)研的時(shí)候?qū)τ谶x擇那種

    框架對(duì)于很多開發(fā)者來說尤為頭疼;

    本篇主要總結(jié)一下市場(chǎng)上主流的開發(fā)語言中有哪些主流的爬蟲框架,以及爬蟲框架的優(yōu)劣;希望在對(duì)你在選擇合適爬蟲框架中有所幫助。

    一、主流語言爬蟲框架列表:

主流語言爬蟲框架列表

    二、主流爬蟲框架簡(jiǎn)介

    1、Java爬蟲框架

Java爬蟲框架

    1.1、Apache Nutch2

    鏈接地址:nutch.apache.org

    Nutch 是一個(gè)開源Java 實(shí)現(xiàn)的搜索引擎。它提供了我們運(yùn)行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬蟲。

    Nutch 致力于讓每個(gè)人能很容易, 同時(shí)花費(fèi)很少就可以配置世界一流的Web搜索引擎. 為了完成這一宏偉的目標(biāo), Nutch必須能夠做到:

    * 每個(gè)月取幾十億網(wǎng)頁

    * 為這些網(wǎng)頁維護(hù)一個(gè)索引

    * 對(duì)索引文件進(jìn)行每秒上千次的搜索

    Ⅰ、對(duì)索引文件進(jìn)行每秒上千次的搜索

    Ⅱ、提供高質(zhì)量的搜索結(jié)果

    簡(jiǎn)單來說Nutch支持分布式,可以通過配置網(wǎng)站地址、規(guī)則、以及采集的深度(通用爬蟲或全網(wǎng)爬蟲)對(duì)網(wǎng)站進(jìn)行采集,并提供了全文檢索功能,可以對(duì)采集下來的海量數(shù)據(jù)進(jìn)行全文檢索;假如您想完成對(duì)站點(diǎn)所有內(nèi)容進(jìn)行采集,且不在乎采集和解析精度(不對(duì)特定頁面特定字段內(nèi)容采集)的需求,建議你使用Apache Nutch,假如您想對(duì)站點(diǎn)的指定內(nèi)容板塊指定字段采集,建議您使用垂直爬蟲較為靈活。

    1.2、webmgaic(推薦)

    鏈接地址:webmagic.io

    WebMagic是一個(gè)簡(jiǎn)單靈活的Java爬蟲框架?;赪ebMagic,你可以快速開發(fā)出一個(gè)高效、易維護(hù)的爬蟲。

    特性:簡(jiǎn)單的API,可快速上手;模塊化的結(jié)構(gòu),可輕松擴(kuò)展;提供多線程和分布式支持

    1.3、Heritrix

    鏈接地址:crawler.archive.org

    Heritrix 是一個(gè)由 java 開發(fā)的、開源的網(wǎng)絡(luò)爬蟲,用戶可以使用它來從網(wǎng)上抓取想要的資源。其最出色之處在于它良好的可擴(kuò)展性,方便用戶實(shí)現(xiàn)自己的抓取邏輯。

    1.4、WebCollector

    鏈接地址:github.com/CrawlScript/WebCollector

    WebCollector是一個(gè)無須配置、便于二次開發(fā)的JAVA爬蟲框架(內(nèi)核),它提供精簡(jiǎn)的的API,只需少量代碼即可實(shí)現(xiàn)一個(gè)功能強(qiáng)大的爬蟲。WebCollector-Hadoop是WebCollector的Hadoop版本,支持分布式爬取。

    1.5、crawler4j

    鏈接地址::github.com/yasserg/crawler4j

    crawler4j是一款基于Java的輕量級(jí)單機(jī)開源爬蟲框架,最大的一個(gè)特點(diǎn)就是簡(jiǎn)單。另外也支持多線程、支持代理、可以過濾重復(fù)URL

    基本上從加載jar到工程里面 通過修改示例的代碼就可以簡(jiǎn)單的實(shí)現(xiàn)一個(gè)爬蟲的全部功能,而這一切動(dòng)作加起來都不需要超過半個(gè)小時(shí)。

    1.6、Spiderman

    鏈接地址:m.gitee.com/l-weiwei/spiderman

    Spiderman 是一個(gè)Java開源Web數(shù)據(jù)抽取工具。它能夠收集指定的Web頁面并從這些頁面中提取有用的數(shù)據(jù)。 Spiderman主要是運(yùn)用了像XPath、正則、表達(dá)式引擎等這些技術(shù)來實(shí)現(xiàn)數(shù)據(jù)抽取。

    1.7、eimiCrawler

    鏈接地址:seimi.wanghaomiao.cn

    一個(gè)敏捷的,獨(dú)立部署的,支持分布式的Java爬蟲框架;

    SeimiCrawler是一個(gè)強(qiáng)大的,高效敏捷的,支持分布式的爬蟲開發(fā)框架,希望能在最大程度上降低新手開發(fā)一個(gè)可用性高且性能不差的爬蟲系統(tǒng)的門檻,以及提升開發(fā)爬蟲系統(tǒng)的開發(fā)效率。在SeimiCrawler的世界里,絕大多數(shù)人只需關(guān)心去寫抓取的業(yè)務(wù)邏輯就夠了,其余的Seimi幫你搞定。設(shè)計(jì)思想上SeimiCrawler受Python的爬蟲框架Scrapy啟發(fā)很大,同時(shí)融合了Java語言本身特點(diǎn)與Spring的特性,并希望在國(guó)內(nèi)更方便且普遍的使用更有效率的XPath解析HTML,所以SeimiCrawler默認(rèn)的HTML解析器是JsoupXpath,默認(rèn)解析提取HTML數(shù)據(jù)工作均使用XPath來完成(當(dāng)然,數(shù)據(jù)處理亦可以自行選擇其他解析器)。

    1.8、jsoup

    鏈接地址:jsoup.org

    jsoup 是一款Java 的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數(shù)據(jù)。

    2、Python爬蟲框架

Python爬蟲框架

    2.1、scrapy (推薦)

    鏈接地址:scrapy.org

    Scrapy,Python開發(fā)的一個(gè)快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點(diǎn)并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試。

    Scrapy吸引人的地方在于它是一個(gè)框架,任何人都可以根據(jù)需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支持。

    Scrap,是碎片的意思,這個(gè)Python的爬蟲框架叫Scrapy。

    2.2、Crawley

    鏈接地址:project.crawley-cloud.com

    高速爬取對(duì)應(yīng)網(wǎng)站的內(nèi)容,支持關(guān)系和非關(guān)系數(shù)據(jù)庫,數(shù)據(jù)可以導(dǎo)出為JSON、XML等

    2.3、Portia

    鏈接地址:scrapinghub.com/portia

    Portia 是一個(gè)用 Python 編寫無需任何編程知識(shí),就能可視爬取網(wǎng)站數(shù)據(jù)的開源工具。無需下載或安裝任何東西,因?yàn)?,Portia 是運(yùn)行在您的 Web 瀏覽器中。

    Portia 是 scrapyhub 開源的一款可視化爬蟲規(guī)則編寫工具。Portia 提供了可視化的 Web 頁面,只需通過簡(jiǎn)單點(diǎn)擊,標(biāo)注頁面上需提取的相應(yīng)數(shù)據(jù),無需任何編程知識(shí)即可完成爬取規(guī)則的開發(fā)。這些規(guī)則還可在 Scrapy 中使用,用于抓取頁面。

    2.4、PySpider

    鏈接地址:www.pyspider.cn

    PySpider:一個(gè)國(guó)人編寫的強(qiáng)大的網(wǎng)絡(luò)爬蟲系統(tǒng)并帶有強(qiáng)大的WebUI。采用Python語言編寫,分布式架構(gòu),支持多種數(shù)據(jù)庫后端,強(qiáng)大的WebUI支持腳本編輯器,任務(wù)監(jiān)視器,項(xiàng)目管理器以及結(jié)果查看器。

    2.5、grab

    鏈接地址:www.imscraping.ninja/posts/introducing-grab-framework-python-webscraping/

    網(wǎng)絡(luò)爬蟲框架(基于pycurl/multicur)。

    2.6、cola

    鏈接地址:ithub.com/chineking/cola

    一個(gè)分布式爬蟲框架。項(xiàng)目整體設(shè)計(jì)有點(diǎn)糟,模塊間耦合度較高,不過值得借鑒。

    3、PHP爬蟲框架

PHP爬蟲框架

    3.1、phpspider

    鏈接地址:github.com/owner888/phpspider

    phpspider是一個(gè)爬蟲開發(fā)框架。使用本框架,你不用了解爬蟲的底層技術(shù)實(shí)現(xiàn),爬蟲被網(wǎng)站屏蔽、有些網(wǎng)站需要登錄或驗(yàn)證碼識(shí)別才能爬取等問題。簡(jiǎn)單幾行PHP代碼,就可以創(chuàng)建自己的爬蟲,利用框架封裝的多進(jìn)程Worker類庫,代碼更簡(jiǎn)潔,執(zhí)行效率更高速度更快。

    3.2、Beanbun

    鏈接地址:www.beanbun.org/#/

    Beanbun 是用 PHP 編寫的多進(jìn)程網(wǎng)絡(luò)爬蟲框架,具有良好的開放性、高可擴(kuò)展性。

    支持守護(hù)進(jìn)程與普通兩種模式(守護(hù)進(jìn)程模式只支持 Linux 硚口服務(wù)器

    默認(rèn)使用 Guzzle 進(jìn)行爬取

    支持分布式

    支持內(nèi)存、Redis 等多種隊(duì)列方式

    支持自定義URI過濾

    支持廣度優(yōu)先和深度優(yōu)先兩種爬取方式

    遵循 PSR-4 標(biāo)準(zhǔn)

    爬取網(wǎng)頁分為多步,每步均支持自定義動(dòng)作(如添加代理、修改 user-agent 等)

    靈活的擴(kuò)展機(jī)制,可方便的為框架制作插件:自定義隊(duì)列、自定義爬取方式…

    3.3、PHPCrawl

    鏈接地址:phpcrawl.cuab.de

    PHPCrawl是一個(gè)PHP開源的Web檢索蜘蛛(爬蟲)類庫。PHPCrawl抓取工具“ Spider ”的網(wǎng)站,并提供一切有關(guān)網(wǎng)頁,鏈接,文件等信息。

    PHPCrawl povides可以選擇性的指定的爬蟲的行為,比如喜歡網(wǎng)址、內(nèi)容類型,過濾器、 cookie的處理等方式。

    4、c#爬蟲框架

c#爬蟲框架

    4.1、DotnetSpider

    鏈接地址:www.dotnetspider.com

    DotnetSpider這是國(guó)人開源的一個(gè)跨平臺(tái)、高性能、輕量級(jí)的爬蟲軟件,采用 C# 開發(fā)。目前是.Net開源爬蟲最為優(yōu)秀的爬蟲之一。

    4.2、NWebCrawler

    鏈接地址:nwebcrawler.codeplex.com

    NWebCrawler是一款開源的C#網(wǎng)絡(luò)爬蟲程序更多NWebCrawler

    4.3、SmartSpider

    鏈接地址:www.softpedia.com/get/Internet/Download-Managers/SmartSpider.shtml

    SmartSpider爬蟲引擎內(nèi)核版,全新的設(shè)計(jì)理念,真正的極簡(jiǎn)版本。

    4.4、Abot

    鏈接地址:github.com/sjdirect/abot

    Abot是一個(gè)開源的.net爬蟲,速度快,易于使用和擴(kuò)展。

    4.5、xNet

    鏈接地址:github.com/X-rus/xNet

    這個(gè)一個(gè)俄國(guó)牛人寫的開源工具,為啥說他強(qiáng)悍了,因?yàn)樗麑⑺蠬ttp協(xié)議的底層都實(shí)現(xiàn)了一遍,這有啥好處?只要你是寫爬蟲的,都會(huì)遇到一個(gè)讓人抓狂的問題,就是明明知道自己Http請(qǐng)求頭跟瀏覽器一模一樣了,為啥還會(huì)獲取不到自己想要的數(shù)據(jù)。這時(shí)你如果使用HttpWebReaquest,你只能調(diào)試到GetRespone,底層的字節(jié)流是調(diào)試不到了。所以必須得有個(gè)更深入的底層組件,方便自己調(diào)試。

    4.6、AngleSharp

    鏈接地址:anglesharp.github.io

    解析HTML利器AngleSharp介紹解析HTML利器AngleSharp介紹AngleSharp是基于.NET(C#)開發(fā)的專門為解析xHTML源碼的DLL組件。

    4.7、HtmlAgilityPack

    鏈接地址:htmlagilitypack.codeplex.com

    HtmlAgilityPack 是 .NET 下的一個(gè) HTML 解析類庫。支持用 XPath 來解析 HTML 。命名空間: HtmlAgilityPack

    4.8、CSQuery

    鏈接地址:github.com/jamietre/CsQuery

    CsQuery 犀利的html代碼分析庫,像jq一樣用c#處理html

    5、C/C++爬蟲框架

C/C++爬蟲框架

    open-source-search-engine

    鏈接地址:github.com/gigablast/open-source-search-engine

    基于C/C++開發(fā)的網(wǎng)絡(luò)爬蟲和搜索引擎.

    5.1、Cobweb

    鏈接地址:github.com/stewartmckee/cobweb

    非常靈活,易于擴(kuò)展的網(wǎng)絡(luò)爬蟲,可以單點(diǎn)部署使用.

    5.2、upton

    鏈接地址:github.com/propublica/upton

    一個(gè)易于上手的爬蟲框架集合,支持CSS選擇器.

    5.3、wombat

    鏈接地址:github.com/felipecsl/wombat

    基于Ruby天然的支持DSL的網(wǎng)絡(luò)爬蟲,易于提取網(wǎng)頁正文數(shù)據(jù).

    5.4、Spidr

    鏈接地址:github.com/postmodern/spidr

    全站數(shù)據(jù)采集,支持無限的網(wǎng)站鏈接地址采集.

    5.5、Larbin

    鏈接地址:larbin.sourceforge.net/download.html

    larbin是一種開源的網(wǎng)絡(luò)爬蟲/網(wǎng)絡(luò)蜘蛛,由法國(guó)的年輕人Sébastien Ailleret獨(dú)立開發(fā),用c++語言實(shí)現(xiàn)。larbin目的是能夠跟蹤頁面的url進(jìn)行擴(kuò)展的抓取,最后為搜索引擎提供廣泛的數(shù)據(jù)來源。 Larbin只是一個(gè)爬蟲,也就是說larbin只抓取網(wǎng)頁,至于如何parse的事情則由用戶自己完成。另外,如何存儲(chǔ)到數(shù)據(jù)庫以及建立索引的事情 larbin也不提供。

    larbin最初的設(shè)計(jì)也是依據(jù)設(shè)計(jì)簡(jiǎn)單但是高度可配置性的原則,因此我們可以看到,一個(gè)簡(jiǎn)單的larbin的爬蟲可以每天獲取500萬的網(wǎng)頁,實(shí)在是非常高效。

    利用larbin,我們可以輕易的獲取/確定單個(gè)網(wǎng)站的所有聯(lián)結(jié),甚至可以鏡像一個(gè)網(wǎng)站;也可以用它建立url 列表群,例如針對(duì)所有的網(wǎng)頁進(jìn)行 url retrive后,進(jìn)行xml的聯(lián)結(jié)的獲取?;蛘呤?mp3,或者定制larbin,可以作為搜索引擎的信息的來源。


以上文章來源于網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系創(chuàng)一網(wǎng)的客服處理。謝謝!