使用 Scrapfly SDK(scrapfly-sdk)在 TypeScript 或 JavaScript 中进行网页抓取,用于用户请求抓取 URL、绕过反爬虫防护、渲染页面等场景。
Scrappfly TypeSDK. 使用废蝇-sdk包从TypeScript/JavaScript. 中刮网页 使用代理旋转,反机器人绕行(ASP),Java
功能概述
Scrappfly TypeSDK. 使用废蝇-sdk包从TypeScript/JavaScript. 中刮网页 使用代理旋转,反机器人绕行(ASP),Java是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Scrapfly TypeScript SDK
使用 scrapfly-sdk 包,可在 TypeScript/JavaScript 中抓取网页,支持代理轮换、反爬绕过(ASP)、JavaScript 渲染、截图及 AI 提取。兼容 Node.js、Deno、Bun 及边缘运行时(Cloudflare Workers、AWS Lambda)。
适用场景
- 从 TypeScript/JavaScript 代码库中抓取网页(HTML、JSON、文本、Markdown)
- 绕过反爬保护(Cloudflare、DataDome、PerimeterX、Kasada)
- 使用无头浏览器渲染 JavaScript 密集型页面
- 截取网页截图或提取结构化数据
- 并发抓取多个 URL
安装配置
npm install scrapfly-sdk # Deno / JSR:从 'jsr:@scrapfly/scrapfly-sdk' 导入 export SCRAPFLY_API_KEY="your-api-key"
请在 scrapfly.io 获取您的 API 密钥。
基础抓取
import { ScrapflyClient, ScrapeConfig } from 'scrapfly-sdk';
const client = new ScrapflyClient({ key: process.env.SCRAPFLY_API_KEY });
const result = await client.scrape(
new ScrapeConfig({ url: 'https://web-scraping.dev/products' }),
);
console.log(result.result.content);
反爬绕过、地理定位与 JavaScript 渲染
ScrapeConfig 使用 snake_case 风格的选项键名,与后端 API 保持一致。
const result = await client.scrape(
new ScrapeConfig({
url: 'https://web-scraping.dev/products',
asp: true, // 绕过反爬机制
country: 'us', // 代理所在国家(ISO 3166-1 alpha-2 编码)
proxy_pool: 'public_residential_pool',
render_js: true, // 启用无头浏览器渲染
wait_for_selector: 'div.product', // 需配合 render_js 使用
rendering_wait: 5000, // 毫秒,需配合 render_js 使用
format: 'markdown', // 可选值:raw | clean_html | json | markdown | text
}),
);
截图与内容提取
import { ScreenshotConfig, ExtractionConfig } from 'scrapfly-sdk';
const shot = await client.screenshot(
new ScreenshotConfig({ url: 'https://web-scraping.dev/products' }),
);
// shot.image 为二进制图像数据
const html = (await client.scrape(
new ScrapeConfig({ url: 'https://web-scraping.dev/reviews' }),
)).result.content;
const data = await client.extract(
new ExtractionConfig({
body: html,
content_type: 'text/html',
extraction_prompt: 'extract the reviews as JSON with fields: review, date, rating, author',
}),
);
console.log(data.data);
并发抓取
const configs = [
new ScrapeConfig({ url: 'https://web-scraping.dev/products?page=1' }),
new ScrapeConfig({ url: 'https://web-scraping.dev/products?page=2' }),
];
for await (const result of client.concurrentScrape(configs)) {
console.log(result.result.content.slice(0, 100));
}
重要说明
render_js: true是启用rendering_wait、wait_for_selector和截图功能的前提条件- 建议在启用
asp: true的同时,指定proxy_pool: 'public_residential_pool' - 如需获取干净、适合大语言模型(LLM)处理的内容,请使用
format: 'markdown' - API 密钥通过构造函数的
key参数传入(例如传入process.env.SCRAPFLY_API_KEY) - 抓取结果的网页正文需通过
result.result.content访问
热门AI工具
相关专题
本专题围绕 TypeScript 在 Node.js 全栈开发中的工程化实践展开,系统讲解 Monorepo 架构设计、包管理策略、模块复用机制以及服务端与前端统一类型系统的构建方法。通过真实项目案例,帮助开发者提升大型全栈项目的可维护性与协作效率。
278
2026.06.16
本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。
251
2026.03.13
本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。
400
2026.02.25
本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。
192
2026.02.13
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
热门下载
相关下载
精品课程
