天天看點

Ferret — Go 語言實作的聲明式 Web 爬蟲系統

Ferret 是一個聲明式的 Web 爬蟲系統,旨在簡化網絡上的資料提取,以用于 UI 測試、機器學習和分析等等。

Ferret 擁有自己的聲明式語言,通過抽象出技術細節和底層技術的複雜性,進而更專注于資料本身。

Ferret — Go 語言實作的聲明式 Web 爬蟲系統

特性

  • 聲明式語言
  • 支援靜态和動态 web 頁面
  • 嵌入式
  • 可擴充

示例

LET google = DOCUMENT("https://www.google.com/", true)

INPUT(google, 'input[name="q"]', "ferret", 25)
CLICK(google, 'input[name="btnK"]')

WAIT_NAVIGATION(google)

FOR result IN ELEMENTS(google, '.g')
    // filter out extra elements like videos and 'People also ask'
    FILTER TRIM(result.attributes.class) == 'g'
    RETURN {
        title: INNER_TEXT(result, 'h3'),
        description: INNER_TEXT(result, '.st'),
        url: INNER_TEXT(result, 'cite')
    }           

本文來自雲栖社群合作夥伴“開源中國”

本文作者:局長

原文連結