首页 >web前端 >js教程 >在 Node.js 中构建网络爬虫以发现 GitHub 上由 AI 驱动的 JavaScript 存储库

在 Node.js 中构建网络爬虫以发现 GitHub 上由 AI 驱动的 JavaScript 存储库

DDD
DDD原创
2024-11-27 20:30:15881浏览

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