抓取网站

抓取网站及其链接页面以提取全面的数据。有关详细用法,请查看 Crawl API 参考

默认情况下,抓取会跳过不属于你所指定 URL 层级的子链接。例如,抓取 https://example.com/products/ 不会捕获 https://example.com/promotions/deal-567 下的页面。若要包含此类链接,请启用 allowBackwardLinks 参数。

Scrapeless 提供了用于启动抓取请求以及获取其状态和结果的端点。默认情况下,抓取以异步方式处理:先启动任务,然后持续检查其状态直到完成。不过,借助我们的 SDK,我们提供了一个简单的函数,它会处理整个流程,并在任务完成后返回数据。

安装

npm install @scrapeless-ai/sdk
 
pnpm add @scrapeless-ai/sdk
 

用法

import { ScrapingCrawl } from "@scrapeless-ai/sdk";
 
// Initialize the client
const client = new ScrapingCrawl({
  apiKey: "your-api-key", // Get your API key from https://scrapeless.com
});
 
(async () => {
  const result = await client.crawlUrl(
    "https://example.com",
    {
      limit: 2,
      scrapeOptions: {
        formats: ["markdown", "html", "links"],
        onlyMainContent: false,
        timeout: 15000,
      },
      browserOptions: {
        proxyCountry: "ANY",
        sessionName: "Crawl",
        sessionRecording: true,
        sessionTTL: 900,
      },
    }
  );
 
  console.log(result);
})();
 

响应

{
  "success": true,
  "status": "completed",
  "completed": 2,
  "total": 2,
  "data": [
    {
      "url": "https://example.com",
      "metadata": {
        "title": "Example Page",
        "description": "A sample webpage"
      },
      "markdown": "# Example Page\nThis is content...",
      ...
    },
    ...
  ]
}
 

每个被抓取的页面都有各自的状态 completed 或 failed,并且可能带有各自的 error 字段,因此请注意这一点。

要查看完整的 schema,请查阅 API 参考。

浏览器配置

在创建新会话时,你还可以为执行抓取任务所用的会话提供配置;这些配置可能包括使用代理。

有关可用参数的完整列表,请参阅 API 参考 或 浏览器参数。

import { ScrapingCrawl } from "@scrapeless-ai/sdk";
 
// Initialize the client
const client = new ScrapingCrawl({
  apiKey: "your-api-key", // Get your API key from https://scrapeless.com
});
 
(async () => {
  const result = await client.crawlUrl(
    "https://example.com",
    {
      limit: 2,
      browserOptions: {
        proxyCountry: "ANY",
        sessionName: "Crawl",
        sessionRecording: true,
        sessionTTL: 900,
      },
    }
  );
 
  console.log(result);
})();
 

抓取配置

你还可以为抓取任务指定可选参数,例如响应格式、启用仅提取主体内容、设置最大页面导航超时等。

import { ScrapingCrawl } from "@scrapeless-ai/sdk";
 
// Initialize the client
const client = new ScrapingCrawl({
  apiKey: "your-api-key", // Get your API key from https://scrapeless.com
});
 
(async () => {
  const result = await client.crawlUrl(
    "https://example.com",
    {
      limit: 2,
      scrapeOptions: {
        formats: ["markdown", "html", "links"],
        onlyMainContent: false,
        timeout: 15000,
      }
    }
  );
 
  console.log(result);
})();
 

有关抓取端点的完整参考,请查阅 API 参考。