抓取网站
抓取网站及其链接页面以提取全面的数据。有关详细用法,请查看 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 参考。