首頁 >web前端 >js教程 >在 Node.js 中建立網路爬蟲以發現 GitHub 上由 AI 驅動的 JavaScript 儲存庫

在 Node.js 中建立網路爬蟲以發現 GitHub 上由 AI 驅動的 JavaScript 儲存庫

DDD
DDD原創
2024-11-27 20:30:15841瀏覽

Building a Web Crawler in Node.js to Discover AI-Powered JavaScript Repos on GitHub

GitHub 是創新專案的寶庫,尤其是在不斷發展的人工智慧世界中。但是要篩選無數的儲存庫來找到那些結合了 AI 和 JavaScript 的儲存庫嗎?這就像在浩瀚的程式碼海洋中尋找寶石一樣。輸入我們的 Node.js 網路爬蟲——一個自動搜尋、提取儲存庫詳細資訊(如名稱、URL 和描述)的腳本。

在本教學中,我們將建立一個利用 GitHub 的爬蟲,尋找與 AI 和 JavaScript 搭配使用的儲存庫。讓我們深入研究程式碼並開始挖掘這些寶石。


第 1 部分:設定項目

初始化 Node.js 項目

首先為您的專案建立一個新目錄並使用 npm 對其進行初始化:

mkdir github-ai-crawler
cd github-ai-crawler
npm init -y

接下來,安裝必要的依賴項:

npm install axios cheerio

  • axios :用於向 GitHub 發出 HTTP 請求。
  • cheerio :用於解析和操作 HTML,類似 jQuery。

第 2 部分:了解 GitHub 的搜索

GitHub 提供了強大的搜尋功能,可透過 URL 查詢存取。例如,您可以使用下列查詢搜尋與 AI 相關的 JavaScript 儲存庫:

https://github.com/search?q=ai+language:javascript&type=repositories

我們的爬蟲將模倣此搜索,解析結果並提取相關詳細資訊。


第三部分:編寫爬蟲腳本

在專案目錄中建立一個名為crawler.js的檔案並開始編碼。

第 1 步:導入依賴項

const axios = require('axios');
const cheerio = require('cheerio');

我們使用 axios 來取得 GitHub 的搜尋結果,並使用 Cheerio 來解析 HTML。


第 2 步:定義搜尋 URL

const SEARCH_URL = 'https://github.com/search?q=ai+language:javascript&type=repositories';

此 URL 的目標是與 AI 相關並用 JavaScript 編寫的儲存庫。


2220 免費 資源 針對開發者! ❤️?? (每日更新)

1400 個免費 HTML 範本

351 篇免費新聞文章

67 個免費 AI 提示

315 個免費程式碼庫

52 個適用於 Node、Nuxt、Vue 等的免費程式碼片段和樣板!

25 個免費開源圖示庫

造訪 dailysandbox.pro 免費存取資源寶庫!


第 3 步:取得並解析 HTML

const fetchRepositories = async () => {
    try {
        // Fetch the search results page
        const { data } = await axios.get(SEARCH_URL);
        const $ = cheerio.load(data); // Load the HTML into cheerio

        // Extract repository details
        const repositories = [];
        $('.repo-list-item').each((_, element) => {
            const repoName = $(element).find('a').text().trim();
            const repoUrl = `https://github.com${$(element).find('a').attr('href')}`;
            const repoDescription = $(element).find('.mb-1').text().trim();

            repositories.push({
                name: repoName,
                url: repoUrl,
                description: repoDescription,
            });
        });

        return repositories;
    } catch (error) {
        console.error('Error fetching repositories:', error.message);
        return [];
    }
};

這是發生的事情:

  • 取得 HTML :axios.get 方法檢索搜尋結果頁。
  • 使用 Cheerio 進行解析:我們使用 Cheerio 來導航 DOM,定位具有 .repo-list-item 等類的元素。
  • 提取詳細資訊:對於每個儲存庫,我們提取名稱、URL 和描述。

第 4 步:顯示結果

最後,呼叫函數並記錄結果:

mkdir github-ai-crawler
cd github-ai-crawler
npm init -y


第 4 部分:運行爬網程序

儲存腳本並使用 Node.js 運行它:

npm install axios cheerio

您將看到與 AI 相關的 JavaScript 儲存庫列表,每個儲存庫都有其名稱、URL 和描述,整齊地顯示在您的終端中。


第 5 部分:增強爬蟲

想更進一步嗎?這裡有一些想法:

  1. 分頁 :透過使用 &p=2、&p=3 等修改 URL 來新增對取得多頁搜尋結果的支援
  2. 過濾:按星號或分岔過濾儲存庫,以優先考慮熱門項目。
  3. 儲存資料:將結果儲存到檔案或資料庫以供進一步分析。

儲存到 JSON 檔案的範例:

https://github.com/search?q=ai+language:javascript&type=repositories


自動化之美

透過這個爬蟲,您可以自動完成在 GitHub 上尋找相關儲存庫的繁瑣任務。不再需要手動瀏覽或無休止的點擊——您的腳本會完成艱苦的工作,在幾秒鐘內呈現結果。

有關 Web 開發的更多技巧,請查看 DailySandbox 並註冊我們的免費時事通訊以保持領先地位!

以上是在 Node.js 中建立網路爬蟲以發現 GitHub 上由 AI 驅動的 JavaScript 儲存庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn