DataForSEO
SEO, search-engine results, keyword research, backlinks and AI visibility data.
设置 OnPage 任务
开始对 target 进行爬取,并在 tasks[0].id 中返回任务 id——该 id 是本系列其他所有工具都需要的句柄,请保留它。max_crawl_pages 限制爬取规模,start_url、max_crawl_depth、priority_urls 和 crawl_delay 塑造爬取方式,store_raw_html 决定 post_dataforseo_on_page_raw_html 之后是否有内容可提供。采用 DataForSEO 的信封结构:数据位于 tasks[0].result,结果状态位于 tasks[0].status_code——被拒绝的请求仍会返回 HTTP 200。⚠️ 这不是常见的提交/获取配对:爬取是一个会话,随后由十几个其他工具按 id 查询。轮询 get_dataforseo_on_page_summary 直到 crawl_progress 显示 finished;对 example.com 的单页爬取用时远不到一分钟。
计费参考
- 计量方式:按上报的响应成本计量。
- 参考请求估算:0.003 美元。
- 参考客户倍率:1.0。不得对已结算的客户金额再次应用。
仅供参考的元数据,不是账户报价、保证价格或消费上限。资源额度不同于 Felo 额度。最终扣费以 Felo 计费记录为准。
- 类型: array (object | null)[]
- accept类型: string | null
_language 访问网站的语言标头
可选字段
支持所有语言区域格式(xx、xx-XX、xxx-XX 等)
注意:如果你不指定此参数,某些网站可能会拒绝访问;此时响应数组中的页面将带有"type":"broken - allow类型: boolean | null
_subdomains 包含子域名上的页面
可选字段
如果要抓取目标网站的所有子域名,请设为true
默认值:false - allowed类型: array string[] | null
_subdomains 要抓取的子域名
可选字段
指定你想抓取的子域名
示例:["blog.site.com", "my.site.com", "shop.site.com"]
注意:要使用此参数,allow_subdomains参数应设为false;
否则,allowed_subdomains字段的内容将被忽略,结果将针对所有子域名返回 - browser类型: string | null
_preset 浏览器屏幕参数预设
可选字段
如果使用此字段,则无需指定browser_screen_width、browser_screen_height、browser_screen_scale_factor可选值:desktop、mobile、tabletdesktop预设将应用以下值:browser_screen_width: 1920browser_screen_height: 1080browser_screen_scale_factor: 1mobile预设将应用以下值:browser_screen_width: 390browser_screen_height: 844browser_screen_scale_factor: 3tablet预设将应用以下值:browser_screen_width: 1024browser_screen_height: 1366browser_screen_scale_factor: 2
注意:要使用此参数,请将enable_javascript或enable_browser_rendering设为true - browser类型: integer | null
_screen _height 浏览器屏幕高度
可选字段
你可以设置自定义的浏览器屏幕高度,以便针对特定设备进行审计;
如果使用此字段,则无需指定browser_preset,它将被忽略;
注意:要使用此参数,请将enable_javascript或enable_browser_rendering设为true最小值(像素):240
最大值(像素):9999 - browser类型: number | null
_screen _scale _factor 浏览器屏幕缩放比例
可选字段
你可以设置自定义的浏览器屏幕分辨率比例,以便针对特定设备进行审计;
如果使用此字段,则无需指定browser_preset,它将被忽略;
注意:要使用此参数,请将enable_javascript或enable_browser_rendering设为true最小值:0.5
最大值:3 - browser类型: integer | null 格式: int64
_screen _width 浏览器屏幕宽度
可选字段
你可以设置自定义的浏览器屏幕宽度,以便针对特定设备进行审计;
如果使用此字段,则无需指定browser_preset,它将被忽略;
注意:要使用此参数,请将enable_javascript或enable_browser_rendering设为true最小值(像素):240
最大值(像素):9999 - calculate类型: boolean | null
_keyword _density - check类型: boolean | null
_spell - check类型: array string[] | null
_spell _exceptions 从拼写检查中排除的单词
可选字段
指定你想从拼写检查中排除的单词
单词最大长度:100 个字符
单词数量上限:1000
示例:"SERP", "minifiers", "JavaScript" - check类型: string | null
_spell _language 拼写检查的语言
可选字段
支持的语言:'hy', 'eu', 'bg', 'ca', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'et', 'fo', 'fa', 'fr', 'fy', 'gl', 'ka', 'de', 'el', 'he', 'hu', 'is', 'ia', 'ga', 'it', 'rw', 'la', 'lv', 'lt', 'mk', 'mn', 'ne', 'nb', 'nn', 'pl', 'pt', 'ro', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'tr', 'tk', 'uk', 'vi'
注意:如果未指定语言,将根据页面内容自动设置 - checks类型: object | null
_threshold 自定义检查阈值
可选字段
你可以为 OnPage API 响应的checks对象中的参数指定自定义阈值;
注意:只能修改整数阈值;
例如,high_loading_time和large_page_size参数默认分别设为 3 秒和 1 兆字节;
如果要将这些阈值改为 1 秒和 1000 KB,请使用以下代码片段:"checks_threshold": {<br>"high_loading_time": 1,<br>"large_page_size": 1000<br>}
可自定义的参数及默认值:"title_too_short", default value: 30, type: "int"<br>"title_too_long", default value: 65, type: "int"<br>"small_page_size", default value: 1024, type: "int"<br>"large_page_size", default value: 1048576 (1024 * 1024), type: "int"<br>"low_character_count", default value: 1024, type: "int"<br>"high_character_count", default value: 256000 (250 * 1024), type: "int"<br>"low_content_rate", default value: 0.1, type: "float"<br>"high_content_rate", default value: 0.9, type: "float"<br>"high_loading_time", default value: 3000, type: "int"<br>"high_waiting_time", default value: 1500, type: "int"<br>"low_readability_rate", default value: 15.0, type: "float"<br>"irrelevant_description", default value: 0.2, type: "float"<br>"irrelevant_title", default value: 0.3, type: "float"<br>"irrelevant_meta_keywords", default value: 0.6, type: "float"- property类型: integer | null 格式: int64
Name Signed 64-bit integers (long type).
- crawl类型: integer | null
_delay 命中间隔,毫秒
可选字段
爬虫对服务器的多次命中之间的自定义延迟
默认值:2000 - crawl类型: boolean | null
_sitemap _only 仅爬取站点地图中指示的页面
可选字段
如果只想爬取站点地图中指示的页面,请设为true
如果将此参数设为true且未指定custom_sitemap,将爬取默认站点地图
默认值:false
注意:如果要使用此参数,respect_sitemap应为true - custom类型: string | null
_js 自定义 JavaScript
可选字段
注意:此处输入的脚本执行时间最长应为 700 ms。例如,可以使用以下 JS 片段检查网站是否以scr属性包含 Google Tag Manager:let meta = { haveGoogleAnalytics: false, haveTagManager: false };rnfor (var i = 0; i < document.scripts.length; i++) {rn let src = document.scripts[i].getAttribute("src");rn if (src != undefined) {rn if (src.indexOf("analytics.js") >= 0)rn meta.haveGoogleAnalytics = true;rntif (src.indexOf("gtm.js") >= 0)rn meta.haveTagManager = true;rn }rn}rnmeta;返回值取决于你在此字段中指定的内容。例如,如果指定以下脚本:meta = {}; meta.url = document.URL; meta.test = 'test'; meta;
你将收到以下数据作为响应:"custom_js_response": {<br>"url": "https://dataforseo.com/",<br>"test": "test"<br>}
注意:输入的脚本长度不得超过 2000 个字符 - custom类型: string | null
_robots _txt 自定义 robots.txt 设置
可选字段
示例:Disallow: /directory1/ - custom类型: string | null
_sitemap 自定义站点地图 URL
可选字段
替代站点地图所在页面的 URL
注意:如果要使用此参数,respect_sitemap应为true - custom类型: string | null
_user _agent 自定义用户代理
可选字段
用于抓取网站的自定义用户代理
示例:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
默认值:Mozilla/5.0 (compatible; RSiteAuditor) - disable类型: boolean | null
_cookie _popup 禁用 Cookie 弹窗
可选字段
如果希望禁用向用户请求 Cookie 同意的弹窗,请设为true;
默认值:false - disable类型: array string[] | null
_page _checks 阻止某些页面检查运行
可选字段
指定某些checks,以阻止其运行并影响onpage_score。示例:"disable_page_checks": ["is_5xx_code", "is_4xx_code"] - disable类型: array string[] | null
_sitewide _checks - disallowed类型: array string[] | null
_subdomains 不爬取的子域名
可选字段
指定不希望爬取的子域名
示例:["status.site.com", "docs.site.com"]
注意:要使用此参数,allow_subdomains参数应设为true - enable类型: boolean | null
_browser _rendering - enable类型: boolean | null
_content _parsing - enable类型: boolean | null
_javascript - enable类型: boolean | null
_www _redirect _check 检查域名是否实现了 www 重定向
可选字段
如果希望检查所请求的域名是否实现了 www 到非 www 或非 www 到 www 的重定向,请设为true;
默认值:false - enable类型: boolean | null
_xhr 在页面中启用 XMLHttpRequest
可选字段
如果希望我们的爬虫使用 XMLHttpRequest 对象从 Web 服务器请求数据,请设为true
默认值:false;如果使用此字段,enable_javascript必须设为true; - force类型: boolean | null
_sitewide _checks 爬取单个页面时启用全站检查
可选字段
如果希望在爬取单个页面时获取全站检查数据,请设为true;
默认值:false - load类型: boolean | null
_resources - max类型: integer | null
_crawl _depth 爬取深度
可选字段
要爬取页面的链接深度;
例如,爬取的起始页面为第 0 层,与该页面存在链接的页面为第 1 层,依此类推。 - max类型: integer
_crawl _pages 爬取页面数上限
必填字段
在指定域名上要爬取的页面数量
注意:
如果将max_crawl_pages设为 1 且未指定start_url或将其设为首页,以下全站检查将被禁用:test_canonicalization、enable_www_redirect_check、test_hidden_server_signature、test_page_not_found、test_directory_browsing、test_https_redirect
要强制启用它们,请将force_sitewide_checks设为true。如果max_crawl_pages设为 1 且start_url指定的不是首页,所有全站检查都将被禁用;
要强制启用它们,请将force_sitewide_checks设为true - pingback类型: string | null
_url 任务完成通知 URL
可选字段
任务完成后,我们会向你指定的 URL 发送 GET 请求进行通知
可将 ‘$id’ 字符串用作$id变量,将 ‘$tag’ 用作经 URL 编码的$tag变量。发送请求前我们会设置必要的值。
示例:http://your-server.com/pingscript?id=$idhttp://your-server.com/pingscript?id=$id&tag=$tag
注意:pingback_url中的特殊字符会进行 URL 编码;
例如,#字符会被编码为%23 - priority类型: array string[] | null
_urls 绕过队列优先爬取的 URL
可选字段
此数组中指定的 URL 将优先爬取,绕过爬取队列;
注意:应指定绝对 URL;
最多可指定 20 个 URL;
数组中的所有 URL 必须属于target域名;
除非allow_subdomains参数设为true,否则子域名将被忽略。示例:"priority_urls": [<br>"https://dataforseo.com/apis/serp-api",<br>"https://dataforseo.com/contact"<br>] - respect类型: boolean | null
_sitemap 爬取时遵循站点地图
可选字段
如果希望在爬取时按主站点地图中指示的页面顺序进行,请设为true;
默认值:false
注意:如果设为true,API 响应中的click_depth值将等于0;
请求中的max_crawl_depth字段将被忽略,你可以使用max_crawl_pages参数指定要爬取的页面数量 - return类型: boolean | null
_despite _timeout 即使超时也返回页面数据
可选字段
如果为true,将提供在 120 秒内加载失败并返回超时错误的页面的数据;
默认值:false - robots类型: string | null
_txt _merge _mode 合并或覆盖 robots.txt 设置
可选字段
可能的值:merge、override;
如果希望忽略网站爬取限制及其他 robots.txt 设置,请设为override
默认值:merge;
注意:如果设为override,请指定custom_robots_txt参数 - start类型: string | null
_url - store类型: boolean | null
_raw _html - support类型: boolean | null
_cookies 支持爬取页面的 Cookie
可选字段
设为true以在爬取页面时支持 Cookie
默认值:false - switch类型: boolean | null
_pool 切换代理池
可选字段
如果为true,将使用其他代理池获取所请求的数据;
如果同时设置大量任务,导致偶尔出现rate-limit和/或site_unreachable错误,可以使用此参数 - tag类型: string | null
用户自定义任务标识符
可选字段
字符数上限为 255
可使用此参数标识任务,并将其与结果对应
可在响应的data对象中找到指定的tag值 - target类型: string
目标域名
必填字段
域名不应包含https://和www.
如果指定页面 URL,将返回该 URL 中所含域名的结果 - validate类型: boolean | null
_micromarkup
- 类型: object | null · Response36Afe1097B20_OnPageTaskPostResponseInfo200
- 类型: number | null 格式: doublecost
任务总费用,美元
- 类型: integer | nullstatus
_code 通用状态码 完整响应码列表见此处
- 类型: string | nullstatus
_message 通用信息性消息 完整的一般信息性消息列表见此处
- 类型: array (object | null)[] | nulltasks
任务数组
- 类型: object | null · Response36Afe1097B20_OnPageTaskPostTaskInfo
- cost类型: number | null 格式: double
任务总费用,美元
- data类型: object | null
包含你在 POST 请求中指定的相同参数
- property类型: object | null
Name
- id类型: string | null
任务标识符 我们系统中 UUID 格式的唯一任务标识符
- path类型: array (string | null)[] | null
URL 路径
- result类型: object | null
结果数组
在本例中,该值将为null - result类型: integer | null 格式: int64
_count result 数组中的元素数
- status类型: integer | null
_code 任务的状态码 由 DataForSEO 生成,范围如下:10000-60000 完整响应码列表见此处
- status类型: string | null
_message 任务的信息性消息 完整的一般信息性消息列表见此处
- time类型: string | null
执行时间,秒
- 类型: integer | null 格式: int64tasks
_count tasks 数组中的任务数
- 类型: integer | null 格式: int64tasks
_error tasks 数组中返回错误的任务数
- 类型: string | nulltime
总执行时间,秒
- 类型: string | nullversion
API 的当前版本
application/json - 400
无法处理该请求。请检查请求参数。
- 401
需要有效的 Felo API 密钥。
- 402
由于未满足计费要求,请求无法继续。
- 403
该账户无权执行此操作。
- 429
已达到请求或支出限额。
- 502
服务无法完成该请求。
- 503
API 或计费服务暂时不可用。
- 504
服务在处理请求时超时。
- default
错误响应;上游透传响应可能采用提供方格式
application/json
curl https://openapi.felo.ai/v1/beta/dataforseo/on_page/task_post \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '[
{
"target": "dataforseo.com",
"max_crawl_pages": 10,
"load_resources": true,
"enable_javascript": true,
"custom_js": "meta = {}; meta.url = document.URL; meta;",
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
}
]'
{
"version": null,
"status_code": null,
"status_message": null,
"time": null,
"cost": null,
"tasks_count": null,
"tasks_error": null,
"tasks": [
{
"id": null,
"status_code": null,
"status_message": null,
"time": null,
"cost": null,
"result_count": null,
"path": [
null
],
"data": null,
"result": null
}
]
}