免費(fèi)網(wǎng)絡(luò)爬蟲(chóng)工具匯總

昊陽(yáng)  ?   ? 關(guān)注:7417

網(wǎng)絡(luò)爬蟲(chóng)是一種自動(dòng)化程序或腳本,根據(jù)設(shè)定的數(shù)據(jù)爬取索引系統(tǒng)地爬取 Web 網(wǎng)頁(yè)。整個(gè)過(guò)程稱為 Web 數(shù)據(jù)采集(Crawling)或爬?。⊿pidering)。

人們通常將用于爬取的工具稱為爬蟲(chóng)(Web Spider)、Web 數(shù)據(jù)抽取軟件或 Web 網(wǎng)站采集工具。

為更好地采用各種爬取應(yīng)用,我們需要做好調(diào)研,了解各種應(yīng)用的不同功能和相同特性。我們將在本文中介紹多種不同的開(kāi)源 Web 爬取軟件庫(kù)和工具。本文有助于讀者實(shí)現(xiàn)爬取、采集網(wǎng)站數(shù)據(jù)并分析數(shù)據(jù)。

我們?nèi)娴乜偨Y(jié)了一些最好的開(kāi)源 Web 爬取軟件庫(kù)和工具,并按實(shí)現(xiàn)語(yǔ)言的不同進(jìn)行了分類。

Python 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

1. Scrapy

實(shí)現(xiàn)語(yǔ)言:Python

GitHub 星標(biāo)數(shù):28660

官方支持鏈接:https://scrapy.org/community/

好用的爬蟲(chóng)軟件(免費(fèi)網(wǎng)絡(luò)爬蟲(chóng)工具)

簡(jiǎn)介

Scrapy 是一種高速的高層 Web 爬取和 Web 采集框架,可用于爬取網(wǎng)站頁(yè)面,并從頁(yè)面中抽取結(jié)構(gòu)化數(shù)據(jù)。

Scrapy 的用途廣泛,適用于從數(shù)據(jù)挖掘、監(jiān)控到自動(dòng)化測(cè)試。

Scrapy 設(shè)計(jì)上考慮了從網(wǎng)站抽取特定的信息,它支持使用 CSS 選擇器和 XPath 表達(dá)式,使開(kāi)發(fā)人員可以聚焦于實(shí)現(xiàn)數(shù)據(jù)抽取。

對(duì)于熟悉 Python 的開(kāi)發(fā)人員,只需幾分鐘就能建立并運(yùn)行 Scrapy。

支持運(yùn)行在 Linux、Mac OS 和 Windows 系統(tǒng)上。

特性

內(nèi)置支持從 HTML 和 XML 抽取數(shù)據(jù)、使用擴(kuò)展的 CSS 選擇器(Selector)和 XPath 表達(dá)式等特性。

支持以多種格式(JSON、CSV、XML)生成輸出。

基于 Twisted 構(gòu)建。

穩(wěn)健的支持,自動(dòng)檢測(cè)編碼方式。

快速,功能強(qiáng)大。

官方文檔:https://docs.scrapy.org/en/latest/

官方網(wǎng)站:https://scrapy.org/

2. Cola

實(shí)現(xiàn)語(yǔ)言:Python

GitHub 星標(biāo)數(shù):1274

官方支持鏈接:https://scrapy.org/community/

簡(jiǎn)介

Cola 是一種高層分布式爬取框架,實(shí)現(xiàn)從網(wǎng)站爬取網(wǎng)頁(yè),并從中抽取結(jié)構(gòu)化數(shù)據(jù)。

它提供了一種實(shí)現(xiàn)目標(biāo)數(shù)據(jù)獲取的簡(jiǎn)單且靈活的方式。

用戶只需要編寫(xiě)其中一部分代碼,就可在本地和分布式環(huán)境下運(yùn)行。

特性

高層分布式爬取框架。

簡(jiǎn)單且高速。

靈活。

官方文檔:https://github.com/chineking/cola

官方網(wǎng)站:https://pypi.org/project/Cola/

3. Crawley

實(shí)現(xiàn)語(yǔ)言 Python

GitHub 星標(biāo)數(shù): 144

官方支持鏈接:https://scrapy.org/community/

簡(jiǎn)介

Crawley 是一種 Python 爬取和采集框架,意在簡(jiǎn)化開(kāi)發(fā)人員從 Web 網(wǎng)頁(yè)抽取數(shù)據(jù)到數(shù)據(jù)庫(kù)等結(jié)構(gòu)化存儲(chǔ)中。

特性

基于 Eventlet 構(gòu)建的高速 Web 爬蟲(chóng)。

支持 MySQL、PostgreSQL、Oracle、Sqlite 等關(guān)系數(shù)據(jù)庫(kù)引擎。

支持 MongoDB、CouchDB 等 NoSQL 數(shù)據(jù)庫(kù)(最新特性?。?。

支持導(dǎo)出數(shù)據(jù)為 JSON、XML 和 CSV 格式(最新特性?。?/span>

命令行工具。

支持開(kāi)發(fā)人員使用自己喜好的工具,例如 XPath 或 Pyquery(一種類似于 JQuery 的 Python 軟件庫(kù))等。

支持 Cookie 處理器(Handler)。

官方文檔:https://pythonhosted.org/crawley/

官方網(wǎng)站:http://project.crawley-cloud.com/

4. MechanicalSoup

實(shí)現(xiàn)語(yǔ)言: Python

GitHub 星標(biāo)數(shù): 2803

官方支持鏈接:https://scrapy.org/community/

簡(jiǎn)介

MechanicalSoup 是一種設(shè)計(jì)模擬人類使用 Web 瀏覽器行為的 Python 軟件庫(kù),它基于解析軟件庫(kù) BeautifulSoup 構(gòu)建。

如果開(kāi)發(fā)人員需要從單個(gè)站點(diǎn)采集數(shù)據(jù),或是不需要大量數(shù)據(jù)采集,那么使用 MechanicalSoup 是一種簡(jiǎn)單高效的方法。

MechanicalSoup 自動(dòng)存儲(chǔ)和發(fā)送 Cookie、跟蹤重定向、支持鏈接跟隨和提交表單。

特性

輕量級(jí)。

支持 Cookie 處理器。

官方文檔: https://mechanicalsoup.readthedocs.io/en/stable/

官方網(wǎng)站:https://mechanicalsoup.readthedocs.io/

5. PySpider

實(shí)現(xiàn)語(yǔ)言: Python

GitHub 星標(biāo)數(shù): 11803

官方支持鏈接:https://scrapy.org/community/

簡(jiǎn)介

PySpider 是一種 Python 編寫(xiě)的強(qiáng)大 Web 爬蟲(chóng)。

它支持 JavaScript 網(wǎng)頁(yè),并具有分布式架構(gòu)。

PySpider 支持將爬取數(shù)據(jù)存儲(chǔ)在用戶選定的后臺(tái)數(shù)據(jù)庫(kù),包括 MySQL, MongoDB, Redis, SQLite, Elasticsearch 等。

支持開(kāi)發(fā)人員使用 RabbitMQ、Beanstalk 和 Redis 等作為消息隊(duì)列。

特性

支持對(duì)重度 Ajax 網(wǎng)站的爬取。

易于實(shí)現(xiàn)適用、快速的爬取。

官方文檔: http://docs.pyspider.org/

官方網(wǎng)站:https://github.com/binux/pyspider

6. Portia

實(shí)現(xiàn)語(yǔ)言: Python

GitHub 星標(biāo)數(shù): 6250

官方支持鏈接:https://scrapy.org/community/

簡(jiǎn)介

Portia 是由 Scrapinghub 創(chuàng)建的一種可視化爬取工具,它不需要用戶具有任何程序開(kāi)發(fā)知識(shí)。

如果用戶并非開(kāi)發(fā)人員,最好直接使用 Portia 實(shí)現(xiàn) Web 爬取需求。

用戶無(wú)需任何安裝就可免費(fèi)試用 Portia,只需要在 Scrapinghub 注冊(cè)一個(gè)賬戶,就可使用托管版本。

即便用戶沒(méi)有編程技能,在 Portia 中創(chuàng)建爬蟲(chóng)并抽取 Web 內(nèi)容也是非常易于實(shí)現(xiàn)的。

用戶無(wú)需安裝任何程序,因?yàn)?Portia 是運(yùn)行在 Web 頁(yè)面上的。

一旦檢測(cè)到需要爬取的頁(yè)面,Portia 會(huì)形成一個(gè)用戶已創(chuàng)建結(jié)構(gòu)的實(shí)例。

特性

Portia 可以很好地爬取基于 Ajax 構(gòu)建的網(wǎng)站(基于 Splash),也適用于爬取 Backbone、Angular 和 Ember 等重度 JavsScript 框架。

官方文檔:https://portia.readthedocs.io/en/latest/index.html

官方網(wǎng)站: https://github.com/scrapinghub/portia

7. Beautifulsoup

實(shí)現(xiàn)語(yǔ)言: Python

官方支持鏈接:https://scrapy.org/community/

簡(jiǎn)介

Beautiful Soup 一種設(shè)計(jì)用于實(shí)現(xiàn) Web 爬取等快速數(shù)據(jù)獲取項(xiàng)目的 Python 軟件庫(kù)。

它在設(shè)計(jì)上處于 HTML 或 XML 解析器之上,提供用于迭代、搜索和修改解析樹(shù)等功能的 Python 操作原語(yǔ)。往往能為開(kāi)發(fā)人員節(jié)省數(shù)小時(shí)乃至數(shù)天的工作。

特性

Beautiful Soup 自動(dòng)將輸入文檔轉(zhuǎn)換為 Unicode 編碼,并將輸出文檔轉(zhuǎn)換為 UTF-8 編碼。

Beautiful Soup 處于一些廣為采用的 Python 解析器(例如,lxml 和 html5lib)之上,支持用戶嘗試使用多種不同的解析策略,并在速度和靈活性上做出權(quán)衡。

官方文檔:https://www.crummy.com/software/BeautifulSoup/bs4/doc/

官方網(wǎng)站: https://www.crummy.com/software/BeautifulSoup/

8. Spidy 爬蟲(chóng)

實(shí)現(xiàn)語(yǔ)言: Python

GitHub 星標(biāo)數(shù): 152

官方支持鏈接:https://scrapy.org/community/

簡(jiǎn)介

Spidy 是一種從命令行運(yùn)行的 Web 爬蟲(chóng)。易于使用。用戶只需提供 Web 網(wǎng)頁(yè)的 URL 鏈接,Spidy 就可以開(kāi)始爬?。pidy 無(wú)疑是一種整體爬取 Web 的簡(jiǎn)單有效的方式。

Spidy 使用 Python 請(qǐng)求查詢 Web 頁(yè)面,并使用 lxml 抽取頁(yè)面中的所有鏈接。非常簡(jiǎn)單!

特性

錯(cuò)誤處理。

跨平臺(tái)兼容性。

頻繁時(shí)間戳日志。

可移植性。

用戶友好的日志。

保存 Web 頁(yè)面。

支持文件壓縮。

官方文檔:https://github.com/rivermont/spidy

官方網(wǎng)站: http://project.crawley-cloud.com/

9. Garb

實(shí)現(xiàn)語(yǔ)言: Python

GitHub 星標(biāo)數(shù): 1627

官方支持鏈接:https://scrapy.org/community/

簡(jiǎn)介

Grab 是一種用于構(gòu)建爬蟲(chóng)的 Python 框架。

使用 Grab 可構(gòu)建出各種復(fù)雜度的 Web 爬蟲(chóng),從只有五行代碼的腳本,到可處理百萬(wàn)量級(jí) Web 頁(yè)面的復(fù)雜異步爬蟲(chóng)。

Grab 提供了執(zhí)行網(wǎng)絡(luò)請(qǐng)求、處理接收內(nèi)容的 API。例如,實(shí)現(xiàn)與 HTML 文檔的 DOM 樹(shù)進(jìn)行交互。

特性

支持 HTTP 和 SOCKS 代理,可使用也可不使用認(rèn)證。

自動(dòng)字符集檢測(cè)。

強(qiáng)大的 API,支持使用 XPath 查詢從 HTML 文檔的 DOM 樹(shù)中抽取數(shù)據(jù)。

自動(dòng) Cookie(或會(huì)話)支持。

官方文檔:https://grablib.org/en/latest/

官方網(wǎng)站: https://github.com/lorien/grab

Java 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

10. Apache Nutch

實(shí)現(xiàn)語(yǔ)言: Java

GitHub 星標(biāo)數(shù): 1743

官方支持鏈接:https://wiki.apache.org/nutch/HelpContents

簡(jiǎn)介

Apache Nutch 是一種高度可擴(kuò)展、可伸縮的開(kāi)源 Web 爬蟲(chóng)軟件項(xiàng)目。

如果要列出最好的開(kāi)源 Web 爬蟲(chóng)列表,Apache Nutch 無(wú)疑金榜題名。

作為一種用于數(shù)據(jù)挖掘的高度可擴(kuò)展、可伸縮的開(kāi)源代碼 Web 數(shù)據(jù)抽取軟件項(xiàng)目,Apache Nutch 得到了廣泛的使用。

Nutch 支持單機(jī)運(yùn)行,但是在 Hadoop 集群上運(yùn)行可最大化地發(fā)揮其強(qiáng)大能力。

全球范圍內(nèi)很多數(shù)據(jù)分析人員和科研人員、應(yīng)用開(kāi)發(fā)人員和 Web 文本挖掘工程師都在使用 Apache Nutch。

Apache Nutch 是一種 Java 編寫(xiě)的跨平臺(tái)解決方案。

特性:

默認(rèn)情況下,爬取數(shù)據(jù)和分析數(shù)據(jù)是獨(dú)立的過(guò)程。廣泛支持多種文檔格式,包括純文本、HTML/XHTML XML、XML、PDF、ZIP 等。使用 XPath 和命名空間實(shí)現(xiàn)映射。通過(guò) Hadoop 支持分布式文件系統(tǒng)。鏈接圖形式的數(shù)據(jù)庫(kù)。支持 NTLM 認(rèn)證。

官方文檔: https://wiki.apache.org/nutch/

官方網(wǎng)站: http://nutch.apache.org/

11. Heritrix

實(shí)現(xiàn)語(yǔ)言: JavaGitHub

星標(biāo)數(shù): 1236

官方支持鏈接:https://github.com/internetarchive/heritrix3/issues

簡(jiǎn)介:

在使用 Java 編寫(xiě)的免費(fèi)開(kāi)源 Web 爬蟲(chóng)中,Heritrix 是其中一種得到廣泛使用的工具。事實(shí)上,它是一種可擴(kuò)展、Web 規(guī)模、存檔質(zhì)量(archival-quality)的 Web 爬取項(xiàng)目。Heritrix 是一種擴(kuò)展能力和性能很好的解決方案,支持用戶即刻爬取并歸檔一組網(wǎng)站。此外,它在設(shè)計(jì)上考慮了 robots.txt 禁止規(guī)則和 META 機(jī)器人標(biāo)簽。Heritrix 可運(yùn)行在 Linux/Unix 和 Windows 系統(tǒng)上。

特性:

HTTP 認(rèn)證。NTLM 認(rèn)證。鏈接抽取中的 XSL 轉(zhuǎn)換。獨(dú)立于搜索引擎。是一種成熟并穩(wěn)定的平臺(tái)。高度可配置。支持在任一機(jī)器上運(yùn)行。

官方文檔: https://github.com/internetarchive/heritrix3/wiki/Heritrix 3.0 and 3.1 User Guide

官方網(wǎng)站: https://github.com/internetarchive/heritrix3b

12. ACHE 爬蟲(chóng)

實(shí)現(xiàn)語(yǔ)言: JavaGitHub

星標(biāo)數(shù): 154

官方支持鏈接:https://gitter.im/ViDA-NYU/ache

簡(jiǎn)介:

ACHE 是一種專用于特定用途的 Web 爬蟲(chóng)。ACHE 爬取滿足特定標(biāo)準(zhǔn)的 Web 頁(yè)面。例如,屬于特定領(lǐng)域并包含用戶指定模式的頁(yè)面。不同于通用爬蟲(chóng),ACHE 使用頁(yè)面分類器遴選特定領(lǐng)域中的相關(guān)和無(wú)關(guān)頁(yè)面。頁(yè)面分類器可以是基本的正則表達(dá)式(例如,匹配所有包含給定單詞的頁(yè)面),也可以基于機(jī)器學(xué)習(xí)的分類模型。ACHE 也可以自動(dòng)學(xué)習(xí)如何對(duì)鏈接做優(yōu)先處理,實(shí)現(xiàn)高效地定位相關(guān)內(nèi)容,避免檢索無(wú)關(guān)的頁(yè)面內(nèi)容。

特性:

對(duì)固定網(wǎng)站列表的正常爬取。通過(guò)自動(dòng)鏈接優(yōu)先處理,發(fā)現(xiàn)并爬取新的相關(guān)網(wǎng)站??膳渲貌煌愋偷捻?yè)面分類器(例如,機(jī)器學(xué)習(xí)、正則表達(dá)式等)。持續(xù)重新爬取站點(diǎn),實(shí)現(xiàn)頁(yè)面更新的發(fā)現(xiàn)。使用 ElasticSearch 對(duì)爬取頁(yè)面做索引。實(shí)時(shí)搜索爬取頁(yè)面的 Web 接口。用于監(jiān)控爬蟲(chóng)的 REST API 和基于 Web 的用戶接口。使用 TOR 代理爬取隱含服務(wù)。

官方文檔: http://ache.readthedocs.io/en/latest/

官方網(wǎng)站: https://github.com/ViDA-NYU/ache

13. Crawler4j

實(shí)現(xiàn)語(yǔ)言: JavaGitHub

星標(biāo)數(shù): 3039

官方支持鏈接:https://github.com/yasserg/crawler4j/issues

簡(jiǎn)介:

crawler4j 是一種 Java 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng),提供了爬取 Web 網(wǎng)站的基本接口。開(kāi)發(fā)人員可以使用 crawler4j 在數(shù)分鐘內(nèi)建立一個(gè)多線程 Web 爬蟲(chóng)。

官方文檔: https://github.com/yasserg/crawler4j

官方網(wǎng)站: https://github.com/yasserg/crawler4j

14. Gecco

實(shí)現(xiàn)語(yǔ)言: JavaGitHub

星標(biāo)數(shù): 1245

官方支持鏈接:https://github.com/xtuhcy/gecco/issues

簡(jiǎn)介:

Gecco 是一種使用 Java 開(kāi)發(fā)的輕量級(jí) Web 爬蟲(chóng),易于使用。Gecco 集成了 jsoup、httpclient、fastjson、spring、htmlunit、redission 等優(yōu)秀框架。用戶只需要配置一系列 jQuery 風(fēng)格選擇器,就能很快地建立一個(gè)爬蟲(chóng)。Gecco 框架具有優(yōu)秀的擴(kuò)展能力??蚣芑谝恍╅_(kāi)放式和封閉式設(shè)計(jì)原則,對(duì)改進(jìn)封閉,對(duì)擴(kuò)展開(kāi)放。

特性:

易于使用,使用 jQuery 風(fēng)格選擇器抽取元素。支持頁(yè)面中的異步 Ajax 請(qǐng)求。支持頁(yè)面 JavaScript 變量抽取。使用 Redis 實(shí)現(xiàn)分布式爬取(參見(jiàn) gecco-redis 文檔)。支持使用 Spring 開(kāi)發(fā)業(yè)務(wù)邏輯(參見(jiàn) gecco-spring 文檔)。支持 htmlunit 擴(kuò)展(參見(jiàn) gecco-htmlunit 文檔)。支持多種擴(kuò)展機(jī)制。支持下載 UserAgent 的隨機(jī)選擇。支持下載代理服務(wù)器的隨機(jī)選取。

官方文檔: https://github.com/xtuhcy/gecco

官方網(wǎng)站: https://github.com/xtuhcy/gecco

15. BUbiNG

實(shí)現(xiàn)語(yǔ)言: JavaGitHub

星標(biāo)數(shù):24

官方支持鏈接:https://github.com/LAW-Unimi/BUbiNG/issues

簡(jiǎn)介:

BUbiNG 令人驚喜,它可稱為下一代的開(kāi)源 Web 爬蟲(chóng)。BUbiNG 是一種 Java 開(kāi)發(fā)的完全分布式爬蟲(chóng)(無(wú)需中央?yún)f(xié)調(diào)),每秒可爬取數(shù)千個(gè)網(wǎng)頁(yè),并支持采集大規(guī)模數(shù)據(jù)集。BUbiNG 的分布式是基于高速協(xié)議實(shí)現(xiàn)的,因此可以獲得非常高的通量。BUbiNG 提供對(duì)海量數(shù)據(jù)的大規(guī)模爬取。它完全可配置、易于擴(kuò)展,并可集成垃圾信息檢測(cè)。

特性:

高度并行。完全分布式。使用 JAI4J。JAI4J 是一種基于 JGroups 實(shí)現(xiàn)的瘦功能層,實(shí)現(xiàn)任務(wù)指派。(當(dāng)前)使用剝離網(wǎng)頁(yè)的指紋,檢測(cè)近似的重復(fù)內(nèi)容??焖?。大規(guī)模爬取。

官方文檔: http://law.di.unimi.it/software/bubing-docs/index.html

官方網(wǎng)站: http://law.di.unimi.it/software.php#bubing

16. Narconex

實(shí)現(xiàn)語(yǔ)言:Java

官方支持鏈接:https://github.com/norconex/collector-http/issues

簡(jiǎn)介:

對(duì)于尋求可滿足企業(yè)級(jí)需求的開(kāi)源 Web 爬蟲(chóng)的用戶而言,Narconex 是一種很好的工具。Norconex 支持用戶爬取任何 Web 內(nèi)容。用戶可以獨(dú)立運(yùn)行這種全功能數(shù)據(jù)采集器,或是將其集成在自己的應(yīng)用中。支持所有操作系統(tǒng)??稍诰哂幸话闳萘康膯误w服務(wù)器上爬取數(shù)百萬(wàn)信息。此外,Narconex 提供多種內(nèi)容和元數(shù)據(jù)操作特性,還可以抽取頁(yè)面中特定的圖像。

特性:

多線程。支持按各種計(jì)劃任務(wù),抽取不同時(shí)間段的數(shù)據(jù)。從 HTML、Word、PDF 等多種文件格式中抽取文本內(nèi)容。抽取文檔相關(guān)的元數(shù)據(jù)。支持抽取使用用 JavaScript 渲染的頁(yè)面。檢測(cè)語(yǔ)言。支持翻譯??膳渲门廊∷俣???蓹z測(cè)發(fā)生修改或已被刪除的文檔。支持使用外部命令分析或操作文檔。

官方文檔: http://www.norconex.com/collectors/collector-http/getting-started

官方網(wǎng)站: http://www.norconex.com/collectors/collector-http/

17. WebSPHINX

實(shí)現(xiàn)語(yǔ)言: Java

當(dāng)前尚不提供官方支持。

簡(jiǎn)介:

WebSphinix 是一種非常易于使用的可定制 Web 爬蟲(chóng)。它設(shè)計(jì)用于高級(jí) Web 用戶和 Java 編程人員,支持他們自動(dòng)爬取小部分 Web。WebSphinix 數(shù)據(jù)抽取解決方案也提供了一種全面的 Java 類庫(kù)和交互式軟件開(kāi)發(fā)環(huán)境。WebSphinix 包括兩部分:爬蟲(chóng)基準(zhǔn)測(cè)試(Crawler Workbench),WebSPHINX 類庫(kù)。爬蟲(chóng)基準(zhǔn)測(cè)試提供了很好的用戶圖形接口,支持用戶配置并控制定制的 Web 爬蟲(chóng)。WebSPHINX 類庫(kù)為使用 Java 編寫(xiě) Web 爬蟲(chóng)提供支持。WebSphinix 支持運(yùn)行在 Windows、Linux、Mac 和 Android IOS 上。

特性:

以圖的方式可視化 Web 頁(yè)面采集。將多個(gè)頁(yè)面組合為單個(gè)文檔,以供查看和打印。支持抽取所有滿足設(shè)定模式的文本。支持 HTML 解析。支持 robot.txt 禁止標(biāo)準(zhǔn)。通用 HTML 轉(zhuǎn)換。多線程 Web 頁(yè)面檢索。

官方文檔: https://www.cs.cmu.edu/~rcm/websphinx/doc/index.html

官方網(wǎng)站: https://www.cs.cmu.edu/~rcm/websphinx/#about

18. Spiderman

實(shí)現(xiàn)語(yǔ)言: JavaGitHub

星標(biāo)數(shù): 2400

官方支持鏈接:https://gitee.com/l-weiwei/spiderman/issues

簡(jiǎn)介:

Spiderman 是一種 Java 開(kāi)源 Web 數(shù)據(jù)抽取工具。它采集特定的 Web 頁(yè)面,并從中抽取有用數(shù)據(jù)。Spiderman 主要使用 XPath 和正則表達(dá)式等技術(shù)抽取實(shí)際數(shù)據(jù)。

特性:

更高的性能。持久化集合狀態(tài)。分布式。支持 JavaScript。

官方文檔: https://gitee.com/l-weiwei/spiderman

官方網(wǎng)站: https://gitee.com/l-weiwei/spiderman

19. WebCollector :

實(shí)現(xiàn)語(yǔ)言: JavaGitHub

星標(biāo)數(shù): 1986

官方支持鏈接:https://github.com/CrawlScript/WebCollector/issues

簡(jiǎn)介:

WebCollector 是一種基于 Java 的開(kāi)源 Web 爬蟲(chóng)框架。它為實(shí)現(xiàn) Web 爬取功能提供了一下基本的接口。用戶可以使用它在五分鐘內(nèi)建立起一個(gè)多線程爬蟲(chóng)。

特性:

快速。

官方文檔: https://github.com/CrawlScript/WebCollector

官方網(wǎng)站: https://github.com/CrawlScript/WebCollector

20. Webmagic

實(shí)現(xiàn)語(yǔ)言: JavaGitHub

星標(biāo)數(shù): 6891

官方支持鏈接:https://groups.google.com/forum/#!forum/webmagic-java

簡(jiǎn)介:

WebMagic 是一種可擴(kuò)展的爬蟲(chóng)框架。WebMagic 涵蓋了爬蟲(chóng)的整個(gè)生命周期,包括下載、URL 管理、內(nèi)容抽取和持久化??捎糜诤?jiǎn)化一些特定爬蟲(chóng)的開(kāi)發(fā)。

特性:

高度靈活的簡(jiǎn)單內(nèi)核。提供實(shí)現(xiàn) HTML 抽取的簡(jiǎn)單 API。使用 POJO 標(biāo)注定制爬蟲(chóng),無(wú)需配置。支持多線程和分布式。易于集成。

官方文檔: http://webmagic.io/docs/en/

官方網(wǎng)站: https://github.com/code4craft/webmagic

21. StormCrawler

實(shí)現(xiàn)語(yǔ)言: JavaGitHub

星標(biāo)數(shù):437

官方支持鏈接:https://stackoverflow.com/questions/tagged/stormcrawler

簡(jiǎn)介:

StormCrawler 是一種基于 Apache Storm 構(gòu)架分布式 Web 爬蟲(chóng)的開(kāi)源 SDK。StormCrawler 為開(kāi)發(fā)人員構(gòu)建爬蟲(chóng)提供了軟件庫(kù)和一系列資源。StormCrawler 完全適用于以數(shù)據(jù)流提供需獲取和解析的 URL 的情況,也非常適用于大規(guī)模遞歸性爬取,尤其是需要低延遲的情況。

特性:

可擴(kuò)展。有彈性。低延遲。易于擴(kuò)展。運(yùn)行良好且高效。

官方文檔: http://stormcrawler.net/docs/api/

官方網(wǎng)站: http://stormcrawler.net/

JavaScript 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

22. NodeCrawler

實(shí)現(xiàn)語(yǔ)言: JavaScriptGitHub

星標(biāo)數(shù): 3999

官方支持鏈接:https://gitter.im/node-crawler/discuss?utm_source=badge

簡(jiǎn)介:

NodeCrawler 是一種廣為使用的 Web 爬蟲(chóng),它基于 NodeJS 實(shí)現(xiàn),具有非常快的爬取速度。Nodecrawler 非常適用于偏愛(ài)使用 JavaScript 編程或者致力于 JavaScript 項(xiàng)目的開(kāi)發(fā)人員。其安裝也非常簡(jiǎn)單。JSDOM 和 Cheerio(用于 HTML 解析)實(shí)現(xiàn)服務(wù)器端渲染。其中,JSDOM 更為穩(wěn)定。

特性:

使用 Cheerio(默認(rèn))或 JSDOM 實(shí)現(xiàn)服務(wù)端 DOM 和自動(dòng) jQuery 插入??膳渲贸刈右?guī)模和重試次數(shù)??刂婆廊÷氏拗?。請(qǐng)求的優(yōu)先隊(duì)列。支持 forceUTF8 模式,使得爬蟲(chóng)可以檢測(cè)并轉(zhuǎn)換字符集。與 4.x 乃至更新版本兼容。

官方文檔:https://github.com/bda-research/node-crawler

官方網(wǎng)站:http://nodecrawler.org/

23. Simplecrawler

實(shí)現(xiàn)語(yǔ)言: JavaScriptGitHub

星標(biāo)數(shù):1764

官方支持鏈接:https://github.com/simplecrawler/simplecrawler/issues

簡(jiǎn)介:

Simplecrawler 設(shè)計(jì)提供基本的、靈活且穩(wěn)定的網(wǎng)站爬取 API。Simplecrawler 在實(shí)現(xiàn)上考慮了針對(duì)特大型 Web 站點(diǎn)的歸檔、分析和搜索。它可爬取上百萬(wàn)頁(yè)面,并毫無(wú)問(wèn)題地向磁盤(pán)寫(xiě)入數(shù)十 GB 數(shù)據(jù)。

特性:

提供了用于自動(dòng)檢測(cè)鏈接資源的一些簡(jiǎn)單邏輯,用戶可自行替換和添加。自動(dòng)請(qǐng)求任何 robots.txt 禁止規(guī)則。具有靈活的隊(duì)列系統(tǒng),可在磁盤(pán)上凍結(jié)和解凍。

官方文檔: https://github.com/simplecrawler/simplecrawler

官方網(wǎng)站: https://www.npmjs.com/package/simplecrawler

24. Js-crawler :

實(shí)現(xiàn)語(yǔ)言: JavaScriptGitHub

星標(biāo)數(shù): 167

官方支持鏈接:https://github.com/antivanov/js-crawler/issues

簡(jiǎn)介:

使用 NodeJS 實(shí)現(xiàn)的 Web 爬蟲(chóng),支持 HTTP 和 HTTPS

官方文檔: https://github.com/antivanov/js-crawler

官方網(wǎng)站: https://github.com/antivanov/js-crawler

25. Webster

實(shí)現(xiàn)語(yǔ)言: JavaScriptGitHub

星標(biāo)數(shù): 201

官方支持鏈接:https://github.com/zhuyingda/webster/issues

簡(jiǎn)介:

Webster 是一種使用 NodeJS 編寫(xiě)的可靠 Web 爬取和采集框架,用于爬取 Web 站點(diǎn)并從頁(yè)面中抽取結(jié)構(gòu)化數(shù)據(jù)。與其他爬取框架的不同之處在于,Webster 可以抓取瀏覽器客戶端的 JavaScript 和 Ajax 請(qǐng)求呈現(xiàn)的內(nèi)容。

官方文檔: http://webster.zhuyingda.com/

官方網(wǎng)站: https://github.com/zhuyingda/webster

26. Node-osmosis

實(shí)現(xiàn)語(yǔ)言:JavaScriptGitHub

星標(biāo)數(shù): 3630

官方支持鏈接:https://github.com/rchipka/node-osmosis/issues

簡(jiǎn)介:

一種使用 NodeJS 實(shí)現(xiàn)的 HTML/XML 解析器和 Web 爬蟲(chóng)。

特性:

使用原生 libxml 的 C 綁定。干凈的 Promise 類接口。支持 CSS 3.0 和 XPath 1.0 選擇器的混合。Sizzle 選擇器、Slick 選擇器以及更多。不具有像 jQuery、cheerio 或 jsdom 那樣的大型依賴。構(gòu)成深度和復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

HTML 解析器特性:快速解析;高速搜索;內(nèi)存占用小。

HTML DOM 特性:加載和搜索 ajax 內(nèi)容;DOM 交互和事件;執(zhí)行嵌入和遠(yuǎn)程腳本;在 DOM 中執(zhí)行代碼。

HTTP 請(qǐng)求特性:日志記錄 URL,重定向和錯(cuò)誤;Cookie 的 jar 包,以及自定義 Cookie/ 頭部 / 用戶代理;登錄 / 表單提交、會(huì)話 Cookie,基本的認(rèn)證;單代理、多代理,處理代理失敗情況;限制重試和重定向。

官方文檔: https://rchipka.github.io/node-osmosis/global.html

官方網(wǎng)站: https://www.npmjs.com/package/osmosis

27. Supercrawler

實(shí)現(xiàn)語(yǔ)言:JavaScriptGitHub

星標(biāo)數(shù): 4341

官方支持鏈接:https://github.com/brendonboshell/supercrawler/issues

簡(jiǎn)介:

Supercrawler 是一種使用 NodeJS 實(shí)現(xiàn)的 Web 爬蟲(chóng),在設(shè)計(jì)上支持高度可配置和易用性。一旦成功爬取一個(gè)網(wǎng)頁(yè)(可以是圖像、文本文檔或其他任何文件),Supercrawler 將會(huì)觸發(fā)用戶自定義的內(nèi)容類型(content-type)處理器,處理頁(yè)面解析、保存數(shù)據(jù)以及其它一些用戶定義的功能。

特性:

鏈接檢測(cè):Supercrawler 會(huì)解析所爬取的 HTML 文檔,識(shí)別其中鏈接并添加到隊(duì)列中。

機(jī)器人解析:在爬取前 Supercrawler 會(huì)請(qǐng)求 robots.txt 并檢查其中的禁止規(guī)則。它也可識(shí)別站點(diǎn)地圖。

站點(diǎn)地圖解析:Supercrawler 可以從 XML 站點(diǎn)地圖文件中讀取鏈接,并將鏈接添加到隊(duì)列中。

并發(fā)限制:Supercrawler 可限制在任一時(shí)間發(fā)出的請(qǐng)求數(shù)。

速率限制:Supercrawler 可添加請(qǐng)求的時(shí)延,以免對(duì)服務(wù)器產(chǎn)生轟炸。

指數(shù)補(bǔ)償(Exponential backoff)重試:Supercrawler 將依此在一小時(shí)、兩小時(shí)、四小時(shí)乃至更多時(shí)間后重試請(qǐng)求。要使用該特性,爬取隊(duì)列必須使用數(shù)據(jù)庫(kù)或 Redis 作為后端。

主機(jī)名均衡:Supercrawler 可在不同主機(jī)名間平均分割請(qǐng)求量。要使用該特性,爬取隊(duì)列必須以 Redis 為后端。

官方文檔: https://github.com/brendonboshell/supercrawler

官方網(wǎng)站: https://github.com/brendonboshell/supercrawler

28. Web scraper 的 Chrome 擴(kuò)展

實(shí)現(xiàn)語(yǔ)言:JavaScriptGitHub

星標(biāo)數(shù): 775

官方支持鏈接:https://forum.webscraper.io/

簡(jiǎn)介:

Web Scraper 是一種 Chrome 瀏覽器擴(kuò)展,構(gòu)建用于從 Web 頁(yè)面抽取數(shù)據(jù)。用戶可以使用該擴(kuò)展創(chuàng)建計(jì)劃(站點(diǎn)地圖),定義如何遍歷一個(gè) Web 網(wǎng)站,以及如何從中抽取數(shù)據(jù)。Web Scraper 使用站點(diǎn)地圖相應(yīng)地遍歷網(wǎng)站,并從中抽取數(shù)據(jù)。支持以 CSV 格式導(dǎo)出所抽取的數(shù)據(jù)。

特性:

抽取多個(gè)頁(yè)面。

站點(diǎn)地圖和抽取的數(shù)據(jù)存儲(chǔ)在瀏覽器的本地存儲(chǔ),也可存儲(chǔ)在 CouchDB 中。

多種數(shù)據(jù)類型選取。

支持從動(dòng)態(tài)網(wǎng)頁(yè)(JavaScript AJAX)抽取數(shù)據(jù)。

瀏覽抽取的數(shù)據(jù)。

以 CSV 格式導(dǎo)出抽取的數(shù)據(jù)。

導(dǎo)入、導(dǎo)出站點(diǎn)地圖。

只依賴于 Chrome 瀏覽器。

官方文檔: https://www.webscraper.io/documentation

官方網(wǎng)站: https://www.webscraper.io

29. Headless Chrome 爬蟲(chóng)

實(shí)現(xiàn)語(yǔ)言:JavaScriptGitHub

星標(biāo)數(shù): 3256

官方支持鏈接:https://github.com/yujiosaka/headless-chrome-crawler/issues

簡(jiǎn)介:

使用基本 HTML 文件請(qǐng)求的爬蟲(chóng),通常速度很快。但這樣的爬蟲(chóng)往往會(huì)抽取到空白內(nèi)容,尤其是在爬取使用 AngularJS、React 和 Vue.js 等現(xiàn)代前端框架構(gòu)建的網(wǎng)站時(shí)。

特性:

分布式爬取。

可配置并發(fā)、延遲和重試。

支持深度優(yōu)先搜索和廣度優(yōu)先搜索算法。

支持插拔緩存存儲(chǔ),例如 Redis。

支持導(dǎo)出 CSV 和 JSON。

在達(dá)到最大請(qǐng)求時(shí)暫停爬取,并可在任一時(shí)刻恢復(fù)。

自動(dòng)插入用于抽取的 jQuery。

保存屏幕截圖,用于證實(shí)爬取過(guò)程。

模擬設(shè)備和用戶代理。

具有優(yōu)先隊(duì)列,可提高爬取效率。

官方文檔: https://github.com/yujiosaka/headless-chrome-crawler/blob/master/docs/API.md

官方網(wǎng)站: https://github.com/yujiosaka/headless-chrome-crawler

30. X-ray

實(shí)現(xiàn)語(yǔ)言:JavaScriptGitHub

星標(biāo)數(shù): 4464

官方支持鏈接:https://github.com/matthewmueller/x-ray/issues

特性:

模式靈活:支持字符串、數(shù)組、對(duì)象以及嵌套對(duì)象結(jié)構(gòu)。

模式并非綁定于所抽取的頁(yè)面結(jié)構(gòu),支持用戶獲取選定結(jié)構(gòu)中的數(shù)據(jù)。

可組合(Composable):API 是完全可組合的,賦予用戶抽取每個(gè)頁(yè)面的極大靈活性。

分頁(yè)支持:爬取頁(yè)面在 Web 站點(diǎn)上的所有分頁(yè)。

X-ray 還支持請(qǐng)求延遲和分頁(yè)限制,并支持將爬取頁(yè)面導(dǎo)入到單個(gè)文件中。這樣一旦單個(gè)頁(yè)面產(chǎn)生錯(cuò)誤,用戶不會(huì)失去所有已爬取的數(shù)據(jù)。

爬蟲(chóng)支持:從一個(gè)頁(yè)面開(kāi)始,輕易跳轉(zhuǎn)另一個(gè)頁(yè)面。頁(yè)面跳轉(zhuǎn)是可預(yù)測(cè)的,按深度優(yōu)先爬取所有頁(yè)面。

負(fù)責(zé)任的爬?。篨-ray 支持并發(fā)、限制、延遲、超時(shí)和限制,實(shí)現(xiàn)負(fù)責(zé)任地爬取任何頁(yè)面。

可插拔驅(qū)動(dòng):可按用戶需求置換不同的爬蟲(chóng)。

官方文檔: https://github.com/matthewmueller/x-ray

官方網(wǎng)站: https://www.npmjs.com/package/x-ray-scraper

C 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

31. Httrack

實(shí)現(xiàn)語(yǔ)言:CGitHub

星標(biāo)數(shù): 747

官方支持鏈接:http://forum.httrack.com/

簡(jiǎn)介:

HTTracks 是一項(xiàng)免費(fèi)(GPL、Libre/ 自由軟件)且易于使用的離線瀏覽器功能。支持用戶將 Web 站點(diǎn)下載到本地目錄,遞歸構(gòu)建全部目錄,以及獲取 HTML、圖像和其它文件到本地計(jì)算機(jī)。HTTrack 會(huì)維持原站點(diǎn)的相對(duì)鏈接結(jié)構(gòu)。用戶可以用瀏覽器打開(kāi)本地的“鏡像”頁(yè)面,并逐個(gè)鏈接瀏覽,與在線瀏覽無(wú)異。HTTrack 也支持對(duì)已有鏡像站點(diǎn)的更新,以及從中斷點(diǎn)恢復(fù)下載。HTTrack 高度可配置,并提供幫助文檔。

特性:

多語(yǔ)言窗口,提供對(duì) Linux/UNIX 的接口。

鏡像單個(gè)站點(diǎn),或是一并鏡像多個(gè)站點(diǎn)。

支持按文件類型、鏈接位置、結(jié)構(gòu)深度、文件大小過(guò)濾,接受或拒絕站點(diǎn)或文件名。

支持代理,可最大化速度,并可選認(rèn)證。

官方文檔: http://www.httrack.com/html/index.html

官方網(wǎng)站: http://www.httrack.com/

32. GNU Wget

實(shí)現(xiàn)語(yǔ)言:CGitHub

星標(biāo)數(shù): 22

官方支持鏈接:https://github.com/chineking/cola/issues

簡(jiǎn)介:

GNU Wget 是一種免費(fèi)軟件包,它使用 HTTP、HTTPS、FTP、FTPS 等廣為使用的互聯(lián)網(wǎng)協(xié)議檢索文件。Wget 是一種非交互式命令行工具,易于從腳本、Cron 任務(wù)、不具有 X 窗口支持的終端等處調(diào)用。

特性:

使用 REST 和 RANGE 支持從中斷處恢復(fù)下載。

基于 NLS 的消息文件,可使用多種語(yǔ)言。

可運(yùn)行于大多數(shù)類 UNIX 操作系統(tǒng)上,也支持 Windows.支持 HTTP 代理。

支持 HTTP Cookie。

官方文檔: https://www.gnu.org/software/wget/manual/

官方網(wǎng)站: https://www.gnu.org/software/wget/

C 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

33. gigablast

實(shí)現(xiàn)語(yǔ)言:C GitHub

星標(biāo)數(shù): 912

官方支持鏈接:https://github.com/gigablast/open-source-search-engine/issues

簡(jiǎn)介:

Gigablast 是一種開(kāi)源的 Web 和企業(yè)搜索引擎,也是一種爬蟲(chóng)。Gigablast 是自身維護(hù)數(shù)十億頁(yè)面檢索索引的數(shù)家美國(guó)搜索引擎之一。

特性:

大規(guī)模。高性能。實(shí)時(shí)信息檢索技術(shù)。

官方文檔: http://www.gigablast.com/api.html

官方網(wǎng)站: http://www.gigablast.com/

C# 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

34. Arachnode.net

實(shí)現(xiàn)語(yǔ)言:C#GitHub

星標(biāo)數(shù): 9

官方支持鏈接:http://arachnode.net/forums/

簡(jiǎn)介:

Arachnode.net 適用于尋求開(kāi)源 Web 爬蟲(chóng)的 C# 開(kāi)發(fā)人員。Arachnode.net 軟件類庫(kù)從因特網(wǎng)下載內(nèi)容、對(duì)內(nèi)容做索引,并對(duì)過(guò)程做定制。用戶可使用該工具做個(gè)人內(nèi)容聚合,也可用于將下載的內(nèi)容抽取、采集和解析為多個(gè)表單。Arachnode.net 索引所發(fā)現(xiàn)的內(nèi)容,并存儲(chǔ)在 Lucene.NET 索引中。Arachnode.net 非常適用于文本挖掘,也適用于學(xué)習(xí)高級(jí)爬取技術(shù)。

特性:

可配置規(guī)則和行為。

集成 Lucene.NET。

支持 SQL Server 和全文本索引。

支持對(duì).DOC/.PDF/.PPT/.XLS 等文件類型的索引。

支持將 HTML 轉(zhuǎn)化為 XML 和 XHTML。

支持全部 JavaScript/AJAX 功能。

支持多線程和節(jié)流 (Throttling)。

行為適當(dāng)(Respectful)的爬取。

分析服務(wù)。

官方文檔: https://documentation.arachnode.net/index.html

官方網(wǎng)站: http://arachnode.net/

35. Abot

實(shí)現(xiàn)語(yǔ)言:C#GitHub

星標(biāo)數(shù): 1392

官方支持鏈接:https://groups.google.com/forum/#!forum/abot-web-crawler

簡(jiǎn)介:

Abot 是一種 C# 實(shí)現(xiàn)的開(kāi)源 Web 爬蟲(chóng),主要側(cè)重于速度和靈活性。Abot 在實(shí)現(xiàn)中考慮了底層技術(shù)細(xì)節(jié),包括多線程、HTTP 請(qǐng)求、調(diào)度、鏈接解析等。用戶只需注冊(cè)事件,就可以處理分頁(yè)數(shù)據(jù)。支持用戶插入自己的核心接口實(shí)現(xiàn),實(shí)現(xiàn)對(duì)整個(gè)爬取過(guò)程的完全控制。

特性:

高速!易于定制(可插拔架構(gòu),支持用戶定義爬取內(nèi)容和方式)。

經(jīng)過(guò)大量的單元測(cè)試(高代碼覆蓋率)。

非常輕量級(jí)(并非過(guò)度工程化)。

無(wú)過(guò)程之外的依賴,例如對(duì)數(shù)據(jù)庫(kù)、所安裝服務(wù)等的依賴。

官方文檔: https://github.com/sjdirect/abot

官方網(wǎng)站: https://github.com/sjdirect/abot

36. Hawk

實(shí)現(xiàn)語(yǔ)言:C#GitHub

星標(biāo)數(shù): 1875

官方支持鏈接:https://github.com/ferventdesert/Hawk/issues

簡(jiǎn)介:

HAWK 無(wú)需用戶做任何編程,提供圖形可視化數(shù)據(jù)獲取和清理工具,并以 GPL 協(xié)議開(kāi)源。

特性:

無(wú)需編程,即可實(shí)現(xiàn)對(duì) Web 內(nèi)容的智能分析。

所見(jiàn)即所得(WYSIWYG),可視化拉拽,支持對(duì)數(shù)據(jù)轉(zhuǎn)換和過(guò)濾等的快速處理。

支持從多種數(shù)據(jù)庫(kù)和文件中導(dǎo)入和導(dǎo)出。

任務(wù)可保存并可重用。

尤其適用于爬取和數(shù)據(jù)清理,但其功能并不僅局限于此。

官方文檔: https://github.com/ferventdesert/Hawk

官方網(wǎng)站: https://ferventdesert.github.io/Hawk/

37. SkyScraper

實(shí)現(xiàn)語(yǔ)言:C#GitHub

星標(biāo)數(shù): 39

官方支持鏈接:https://github.com/JonCanning/SkyScraper/issues

簡(jiǎn)介:

一種異步 Web 獲取和爬蟲(chóng),使用了 async/await 和響應(yīng)式擴(kuò)展。

官方文檔: https://github.com/JonCanning/SkyScraper

官方網(wǎng)站: https://github.com/JonCanning/SkyScraper

.NET 編寫(xiě)的 Web 爬蟲(chóng)

38. DotnetSpider

實(shí)現(xiàn)語(yǔ)言:.NETGitHub

星標(biāo)數(shù): 1382

官方支持鏈接:https://github.com/dotnetcore/DotnetSpider/issues

簡(jiǎn)介:

DotnetSpider 是一種使用.NET Standard 實(shí)現(xiàn)的 Web 爬取軟件庫(kù),類似于 WebMagic 和 Scrapy。

它是一種適用于.NET 的輕量級(jí)、高效和高速的高層 Web 爬取和獲取框架。

官方文檔: https://github.com/dotnetcore/DotnetSpider/wiki

官方網(wǎng)站: https://github.com/dotnetcore/DotnetSpider

PHP 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

39. Goutte

實(shí)現(xiàn)語(yǔ)言:PHPGitHub

星標(biāo)數(shù): 6574

官方支持鏈接:https://github.com/FriendsOfPHP/Goutte/issues

簡(jiǎn)介:

Goutte 是一種 PHP 實(shí)現(xiàn)的屏幕抓取和 Web 爬取軟件庫(kù)。

Goutte 為爬取 Web 站點(diǎn)和從 HTML/XML 響應(yīng)中抽取數(shù)據(jù)提供了很好的 API。

官方文檔: https://goutte.readthedocs.io/en/latest/

官方網(wǎng)站: https://github.com/FriendsOfPHP/Goutte

40. Dom-crawler

實(shí)現(xiàn)語(yǔ)言:PHPGitHub

星標(biāo)數(shù): 1340

官方支持鏈接:https://github.com/symfony/symfony/issues

簡(jiǎn)介:

DomCrawler 組件簡(jiǎn)化了對(duì) HTML 和 XML 文檔的 DOM 瀏覽。

官方文檔: https://symfony.com/doc/current/components/dom_crawler.html

官方網(wǎng)站: https://github.com/symfony/dom-crawler

41. Pspider

{placeholder tag=span i=1122}實(shí)現(xiàn)語(yǔ)言:PHPGitHub

{placeholder tag=p i=503} {placeholder tag=span i=1123}星標(biāo)數(shù): 249

{placeholder tag=p i=504} {placeholder tag=span i=1124}官方支持鏈接:https://github.com/hightman/pspider/issues

{placeholder tag=p i=505} {placeholder tag=span i=1125} 簡(jiǎn)介:

{placeholder tag=p i=506} {placeholder tag=span i=1126}Pspider 是最近完全使用 PHP 實(shí)現(xiàn)的一種并行爬取框架,它基于 hightman/httpclient 組件。

{placeholder tag=p i=507} {placeholder tag=span i=1127}官方文檔: https://github.com/hightman/pspider

{placeholder tag=p i=508} {placeholder tag=span i=1128}官方網(wǎng)站: https://github.com/hightman/pspider

{placeholder tag=p i=509} {placeholder tag=span i=1129} 42. Php-spider

{placeholder tag=p i=510} {placeholder tag=span i=1130}實(shí)現(xiàn)語(yǔ)言:PHPGitHub

{placeholder tag=p i=511} {placeholder tag=span i=1131}星標(biāo)數(shù): 1023

{placeholder tag=p i=512} {placeholder tag=span i=1132}官方支持鏈接:https://github.com/mvdbos/php-spider/issues

{placeholder tag=p i=513} {placeholder tag=span i=1133} 簡(jiǎn)介:

{placeholder tag=p i=514} {placeholder tag=span i=1134}一種可配置、可擴(kuò)展的 Web 爬蟲(chóng)。

{placeholder tag=p i=515} {placeholder tag=span i=1135} 特性:

{placeholder tag=p i=516} {placeholder tag=span i=1136}可限制爬取深度、隊(duì)列大小和最大下載數(shù)。

{placeholder tag=p i=517} {placeholder tag=span i=1137}支持基于 XPath、CSS 選擇器或普通(Plain old)PHP 添加自定義的 URI 發(fā)現(xiàn)邏輯。

{placeholder tag=p i=518} {placeholder tag=span i=1138}提供了一系列有用的 URI 過(guò)濾器,例如域限制等。

{placeholder tag=p i=519} {placeholder tag=span i=1139}收集爬取統(tǒng)計(jì)信息,用于形成報(bào)告。

{placeholder tag=p i=520} {placeholder tag=span i=1140}官方文檔: https://github.com/mvdbos/php-spider

{placeholder tag=p i=521} {placeholder tag=span i=1141}官方網(wǎng)站: https://github.com/mvdbos/php-spider

{placeholder tag=p i=522} {placeholder tag=span i=1142} 43. Spatie / Crawler

{placeholder tag=p i=523} {placeholder tag=span i=1143}實(shí)現(xiàn)語(yǔ)言:PHPGitHub

{placeholder tag=p i=524} {placeholder tag=span i=1144}星標(biāo)數(shù): 740

{placeholder tag=p i=525} {placeholder tag=span i=1145}官方支持鏈接:https://github.com/spatie/crawler/issues

{placeholder tag=p i=526} {placeholder tag=span i=1146} 簡(jiǎn)介:

{placeholder tag=p i=527} {placeholder tag=span i=1147}該軟件包提供了從 Web 站點(diǎn)爬取鏈接的類。

{placeholder tag=p i=528} {placeholder tag=span i=1148}在實(shí)現(xiàn)的底層機(jī)制上,使用了 GuzzleHttp/Promise 并發(fā)爬取多個(gè) URL。

{placeholder tag=p i=529} {placeholder tag=span i=1149}該爬蟲(chóng)支持執(zhí)行 JavaScript,可以爬取使用 JavaScript 渲染的站點(diǎn)。

{placeholder tag=p i=530} {placeholder tag=span i=1150}從實(shí)現(xiàn)的底層機(jī)制看,該特性使用了 Chrome 和 Puppeteer。

{placeholder tag=p i=531} {placeholder tag=span i=1151}官方文檔: https://github.com/spatie/crawler

{placeholder tag=p i=532} {placeholder tag=span i=1152}官方網(wǎng)站: https://github.com/spatie/crawler

{placeholder tag=p i=533} {placeholder tag=span i=1153} Ruby 實(shí)現(xiàn)的開(kāi)源 Web 爬蟲(chóng)

{placeholder tag=p i=534} {placeholder tag=span i=1154} 44. Mechanize

{placeholder tag=p i=535} {placeholder tag=span i=1155}實(shí)現(xiàn)語(yǔ)言:RubyGitHub

{placeholder tag=p i=536} {placeholder tag=span i=1156}星標(biāo)數(shù): 3728

{placeholder tag=p i=537} {placeholder tag=span i=1157}官方支持鏈接:https://github.com/sparklemotion/mechanize/issues

{placeholder tag=p i=538} {placeholder tag=span i=1158} 簡(jiǎn)介:

{placeholder tag=p i=539} {placeholder tag=span i=1159}Mechanize 軟件庫(kù)用于實(shí)現(xiàn)于 Web 站點(diǎn)的自動(dòng)交互。

{placeholder tag=p i=540} {placeholder tag=span i=1160}Mechanize 自動(dòng)按重定向存儲(chǔ)并發(fā)送 Cookie。

{placeholder tag=p i=541} {placeholder tag=span i=1161}可以根據(jù)鏈接提交表單,支持填寫(xiě)和提交表單域。

{placeholder tag=p i=542} {placeholder tag=span i=1162}Mechanize 也可跟蹤用戶訪問(wèn)過(guò)站點(diǎn)的歷史記錄。

{placeholder tag=p i=543} {placeholder tag=span i=1163}官方文檔: http://docs.seattlerb.org/mechanize/

{placeholder tag=p i=544} {placeholder tag=span i=1164}官方網(wǎng)站: https://github.com/sparklemotion/mechanize

{placeholder tag=p i=545} {placeholder tag=span i=1165} GO 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

{placeholder tag=p i=546} {placeholder tag=span i=1166} 45. Colly

{placeholder tag=p i=547} {placeholder tag=span i=1167}實(shí)現(xiàn)語(yǔ)言:GoGitHub

{placeholder tag=p i=548} {placeholder tag=span i=1168}星標(biāo)數(shù): 5439

{placeholder tag=p i=549} {placeholder tag=span i=1169}官方支持鏈接:https://github.com/gocolly/colly/issues

{placeholder tag=p i=550} {placeholder tag=span i=1170} 簡(jiǎn)介:

{placeholder tag=p i=551} {placeholder tag=span i=1171}為 Go 愛(ài)好者提供了一種快速且適用的爬取框架。Colly 提供了非常清晰的接口,可用于編寫(xiě)任何類型的爬蟲(chóng)和數(shù)據(jù)獲取工具。Colly 使得用戶可以輕易地從站點(diǎn)抽取結(jié)構(gòu)化數(shù)據(jù)。這些數(shù)據(jù)適用于大范圍的應(yīng)用,例如數(shù)據(jù)挖掘、數(shù)據(jù)處理和歸檔。

{placeholder tag=p i=552} {placeholder tag=span i=1172} 特性:

{placeholder tag=p i=553} {placeholder tag=span i=1173}清晰的 API。

{placeholder tag=p i=554} {placeholder tag=span i=1174}高速(支持單核每秒處理一千次以上的請(qǐng)求)。

{placeholder tag=p i=555} {placeholder tag=span i=1175}按域管理請(qǐng)求延遲和最大并發(fā)。

{placeholder tag=p i=556} {placeholder tag=span i=1176}自動(dòng) Cookie 和會(huì)話管理。

{placeholder tag=p i=557} {placeholder tag=span i=1177}同步 / 異步 / 并行爬取。

{placeholder tag=p i=558} {placeholder tag=span i=1178}支持緩存。

{placeholder tag=p i=559} {placeholder tag=span i=1179}對(duì)非 unicode 響應(yīng)的自動(dòng)編碼。

{placeholder tag=p i=560} {placeholder tag=span i=1180}支持 robots.txt 禁止規(guī)則。

{placeholder tag=p i=561} {placeholder tag=span i=1181}分布式爬取。

{placeholder tag=p i=562} {placeholder tag=span i=1182}可通過(guò)環(huán)境變量配置。

{placeholder tag=p i=563} {placeholder tag=span i=1183}支持?jǐn)U展。

{placeholder tag=p i=564} {placeholder tag=span i=1184}官方文檔: http://go-colly.org/docs/

{placeholder tag=p i=565} {placeholder tag=span i=1185}官方網(wǎng)站: http://go-colly.org/

{placeholder tag=p i=566} {placeholder tag=span i=1186} 46. Gopa

{placeholder tag=p i=567} {placeholder tag=span i=1187}實(shí)現(xiàn)語(yǔ)言:GoGitHub

{placeholder tag=p i=568} {placeholder tag=span i=1188}星標(biāo)數(shù): 169

{placeholder tag=p i=569} {placeholder tag=span i=1189}官方支持鏈接:https://github.com/infinitbyte/gopa/issues

{placeholder tag=p i=570} {placeholder tag=span i=1190} 特性:

{placeholder tag=p i=571} {placeholder tag=span i=1191}輕量級(jí),低資源占用,小于 100MB 的內(nèi)存需求。

{placeholder tag=p i=572} {placeholder tag=span i=1192}易于部署,無(wú)需任何運(yùn)行時(shí)和依賴關(guān)系。

{placeholder tag=p i=573} {placeholder tag=span i=1193}易于使用,不需要用戶具有任何編程和腳本技能,提供開(kāi)箱即可用特性。

{placeholder tag=p i=574} {placeholder tag=span i=1194}官方文檔: https://github.com/infinitbyte/gopa

{placeholder tag=p i=575} {placeholder tag=span i=1195}官方網(wǎng)站: https://github.com/infinitbyte/gopa

{placeholder tag=p i=576} {placeholder tag=span i=1196} 47. Pholcus

{placeholder tag=p i=577} {placeholder tag=span i=1197}實(shí)現(xiàn)語(yǔ)言:GoGitHub

{placeholder tag=p i=578} {placeholder tag=span i=1198}星標(biāo)數(shù): 4341

{placeholder tag=p i=579} {placeholder tag=span i=1199}官方支持鏈接:https://github.com/henrylee2cn/pholcus/issues

{placeholder tag=p i=580} {placeholder tag=span i=1200} 簡(jiǎn)介:

{placeholder tag=p i=581} {placeholder tag=span i=1201} 特性:

{placeholder tag=p i=582} {placeholder tag=span i=1202}一種強(qiáng)大的爬取工具。

{placeholder tag=p i=583} {placeholder tag=span i=1203}支持三種運(yùn)行模式:?jiǎn)螜C(jī)、服務(wù)器和客戶。

{placeholder tag=p i=584} {placeholder tag=span i=1204}提供三種操作接口:Web、GUI 和命令行。

{placeholder tag=p i=585} {placeholder tag=span i=1205}官方文檔: https://pholcus.gitbooks.io/docs/

{placeholder tag=p i=586} {placeholder tag=span i=1206}官方網(wǎng)站: https://github.com/henrylee2cn/pholcus

{placeholder tag=p i=587} {placeholder tag=span i=1207} R 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

{placeholder tag=p i=588} {placeholder tag=span i=1208} 48. Rvest

{placeholder tag=p i=589} {placeholder tag=span i=1209}實(shí)現(xiàn)語(yǔ)言:RGitHub

{placeholder tag=p i=590} {placeholder tag=span i=1210}星標(biāo)數(shù): 969

{placeholder tag=p i=591} {placeholder tag=span i=1211}官方支持鏈接:https://github.com/hadley/rvest/issues

{placeholder tag=p i=592} {placeholder tag=span i=1212} 簡(jiǎn)介:

{placeholder tag=p i=593} {placeholder tag=span i=1213}Rvest 為用戶從 Web 頁(yè)面抽取信息提供幫助。

{placeholder tag=p i=594} {placeholder tag=span i=1214}它在設(shè)計(jì)上使用了 magrittr 軟件包,易于表達(dá)通用 Web 抽取。

{placeholder tag=p i=595} {placeholder tag=span i=1215}官方文檔: https://cran.r-project.org/web/packages/rvest/rvest.pdf

{placeholder tag=p i=596} {placeholder tag=span i=1216}官方網(wǎng)站: https://github.com/hadley/rvest

{placeholder tag=p i=597} {placeholder tag=span i=1217} Scala 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

{placeholder tag=p i=598} {placeholder tag=span i=1218} 49. Sparkler

{placeholder tag=p i=599} {placeholder tag=span i=1219}實(shí)現(xiàn)語(yǔ)言: ScalaGitHub

{placeholder tag=p i=600} {placeholder tag=span i=1220}星標(biāo)數(shù): 198

{placeholder tag=p i=601} {placeholder tag=span i=1221}官方支持鏈接:https://github.com/USCDataScience/sparkler/issues

{placeholder tag=p i=602} {placeholder tag=span i=1222} 簡(jiǎn)介:

{placeholder tag=p i=603} {placeholder tag=span i=1223}Web 爬蟲(chóng)是一種機(jī)器人程序,它從 Web 網(wǎng)站采集資源,用于構(gòu)建搜索引擎、知識(shí)庫(kù)等應(yīng)用。Sparkler(“Spark-Crawler”的縮寫(xiě))是一種新型的 Web 爬蟲(chóng),它通過(guò)整合 Spark、Kafka、Lucene/Solr、Tika、pf4j 等多種 Apache 項(xiàng)目,使用了分布式計(jì)算和信息檢索領(lǐng)域的最新進(jìn)展。

{placeholder tag=p i=604} {placeholder tag=span i=1224} 特性:

{placeholder tag=p i=605} {placeholder tag=span i=1225}提供更高的性能,具有更好的容錯(cuò)。

{placeholder tag=p i=606} {placeholder tag=span i=1226}支持復(fù)雜和近實(shí)時(shí)分析。

{placeholder tag=p i=607} {placeholder tag=span i=1227}實(shí)時(shí)輸出數(shù)據(jù)流。

{placeholder tag=p i=608} {placeholder tag=span i=1228}可擴(kuò)展的插件框架。

{placeholder tag=p i=609} {placeholder tag=span i=1229}通用解析器。

{placeholder tag=p i=610} {placeholder tag=span i=1230}官方文檔: http://irds.usc.edu/sparkler/dev/development-environment-setup.html#contributing-source

{placeholder tag=p i=611} {placeholder tag=span i=1231}官方網(wǎng)站: http://irds.usc.edu/sparkler/

{placeholder tag=p i=612} {placeholder tag=span i=1232} Perl 編寫(xiě)的開(kāi)源 Web 爬蟲(chóng)

{placeholder tag=p i=613} {placeholder tag=span i=1233} 50. Web-scraper

{placeholder tag=p i=614} {placeholder tag=span i=1234}實(shí)現(xiàn)語(yǔ)言:PerlGitHub

{placeholder tag=p i=615} {placeholder tag=span i=1235}星標(biāo)數(shù): 91

{placeholder tag=p i=616} {placeholder tag=span i=1236}官方支持鏈接:https://github.com/miyagawa/web-scraper/issues

{placeholder tag=p i=617} {placeholder tag=span i=1237} 簡(jiǎn)介:

{placeholder tag=p i=618} {placeholder tag=span i=1238}Web Scraper 是一種使用 HTML、CSS 選擇器或 XPath 表達(dá)式的 Web 采集工具集。

{placeholder tag=p i=619} {placeholder tag=span i=1239}官方文檔: https://github.com/miyagawa/web-scraper

{placeholder tag=p i=620} {placeholder tag=span i=1240}官方網(wǎng)站: https://github.com/miyagawa/web-scraper

{placeholder tag=p i=621} {placeholder tag=span i=1241} 總 結(jié)

{placeholder tag=p i=622} {placeholder tag=span i=1242}開(kāi)源 Web 爬取應(yīng)用紛繁多樣,在此難以一一枚舉。每種爬取應(yīng)用分別各具特長(zhǎng),適用于不同用戶的需求。

{placeholder tag=p i=623} {placeholder tag=span i=1243}用戶可根據(jù)自己的需求和技術(shù)要求選取適用的工具。也許用戶會(huì)從上述工具中做出選擇,也許會(huì)選擇本文列表之外的工具。在實(shí)踐中,用戶只需根據(jù)任務(wù)的不同做出一個(gè)合理的選擇,這完全取決于最終用戶。其中至關(guān)重要的是,用戶必須要了解每種工具的獨(dú)特優(yōu)勢(shì),并利用這些優(yōu)勢(shì)服務(wù)于用戶自身的業(yè)務(wù),或是自身所承擔(dān)的其它任何任務(wù)。

本文鏈接:http://m.smohamad.com/article/57416.html(轉(zhuǎn)載請(qǐng)保留)