X-crawl简介
X-crawl是一个灵活的Node.js AI辅助爬虫库,旨在让爬虫工作变得更加高效、智能和便捷。它由两个主要部分组成:
-
爬虫部分:提供了灵活的爬虫API和各种功能,即使不依赖AI也可以正常工作。
-
AI部分:目前基于OpenAI提供的大型AI模型,通过AI简化了许多繁琐的操作。
X-crawl的灵活使用和强大的AI辅助功能,使得爬虫工作更加高效和智能。无论是初学者还是专业开发者,都可以利用X-crawl轻松完成各种爬虫任务。
X-crawl的主要特性
X-crawl具有以下主要特性:
-
🤖 AI辅助 - 强大的AI辅助功能使爬虫工作更加高效、智能和便捷。
-
🖋️ 灵活编写 - 单一的爬取API适用于多种配置,每种配置方法都有其优势。
-
⚙️ 多种用途 - 支持爬取动态页面、静态页面、接口数据和文件数据。
-
⚒️ 控制页面 - 爬取动态页面支持自动化操作、键盘输入、事件操作等。
-
👀 设备指纹 - 零配置或自定义配置,避免指纹识别从不同位置识别和跟踪我们。
-
🔥 异步同步 - 无需切换爬取API即可实现异步或同步爬取模式。
-
⏱️ 间隔爬取 - 无间隔、固定间隔和随机间隔,决定是否高并发爬取。
-
🔄 失败重试 - 自定义重试次数,避免因临时问题导致爬取失败。
-
➡️ 轮换代理 - 失败重试时自动轮换代理,自定义错误次数和HTTP状态码。
-
🚀 优先队列 - 基于单个爬取目标的优先级,可以优先于其他目标爬取。
-
🧾 爬取信息 - 可控的爬取信息,将在终端输出彩色字符串信息。
-
🦾 TypeScript - 拥有自己的类型,并通过泛型实现完整的类型。
这些特性使X-crawl成为一个功能强大且易于使用的爬虫库,可以满足各种爬虫需求。
AI辅助爬虫的优势
随着网络技术的快速发展,网站更新变得越来越频繁,类名或结构的变化经常给依赖这些元素的爬虫带来相当大的挑战。在这种背景下,结合AI技术的爬虫成为应对这一挑战的有力武器。
传统的爬虫策略往往依赖固定的类名或结构来定位和提取所需信息。一旦这些元素发生变化,爬虫可能无法准确找到所需数据,从而影响数据爬取的有效性和准确性。
而结合AI技术的爬虫能够更好地应对这种变化。AI可以通过自然语言处理等技术理解和解析网页的语义信息,从而更准确地提取所需数据。即使网站结构发生变化,AI也能够适应并找到正确的信息。
上图展示了一个AI辅助爬虫的示例。我们可以看到,即使网页结构发生变化,AI仍然能够准确地识别和提取所需的信息。
X-crawl的使用示例
下面是一个结合爬虫和AI的示例,展示了如何使用X-crawl获取高评分度假屋的图片:
import { createCrawl, createCrawlOpenAI } from 'x-crawl'
// 创建爬虫应用
const crawlApp = createCrawl({
maxRetry: 3,
intervalTime: { max: 2000, min: 1000 }
})
// 创建AI应用
const crawlOpenAIApp = createCrawlOpenAI({
clientOptions: { apiKey: process.env['OPENAI_API_KEY'] },
defaultModel: { chatModel: 'gpt-4-turbo-preview' }
})
// crawlPage用于爬取页面
crawlApp.crawlPage('https://www.airbnb.cn/s/select_homes').then(async (res) => {
const { page, browser } = res.data
// 等待元素出现在页面上并获取HTML
const targetSelector = '[data-tracking-id="TOP_REVIEWED_LISTINGS"]'
await page.waitForSelector(targetSelector)
const highlyHTML = await page.$eval(targetSelector, (el) => el.innerHTML)
// 让AI获取图片链接并去重
const srcResult = await crawlOpenAIApp.parseElements(
highlyHTML,
`Get the image link, don't source it inside, and de-duplicate it`
)
browser.close()
// crawlFile用于爬取文件资源
crawlApp.crawlFile({
targets: srcResult.elements.map((item) => item.src),
storeDirs: './upload'
})
})
在这个示例中,我们首先创建了爬虫应用和AI应用。然后使用crawlPage
方法爬取页面,等待目标元素出现并获取其HTML内容。接着,我们使用AI来解析HTML并获取去重后的图片链接。最后,我们使用crawlFile
方法下载这些图片。
这个示例展示了X-crawl如何结合爬虫和AI技术,实现智能化的数据爬取。即使网站结构发生变化,这种方法仍然能够有效地获取所需数据。
结语
X-crawl作为一个灵活的Node.js AI辅助爬虫库,为开发者提供了强大的工具来应对现代网络爬虫的挑战。通过结合传统爬虫技术和先进的AI技术,X-crawl能够更加智能和高效地完成各种爬虫任务。
无论您是需要爬取动态页面、静态页面、接口数据还是文件数据,X-crawl都能满足您的需求。其灵活的配置选项、强大的AI辅助功能以及对TypeScript的良好支持,使得X-crawl成为一个值得信赖的爬虫解决方案。
如果您发现X-crawl对您有帮助,或者您喜欢X-crawl,欢迎在GitHub上给X-crawl仓库点个star。您的支持是我们不断改进的动力!感谢您的支持!
让我们一起探索X-crawl的更多可能性,让爬虫工作变得更加高效、智能和有趣!🚀🤖