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 MB;
如果要將這些閾值改為 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 物件從網頁伺服器請求資料,請設為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
}
]
}