# 参数

该 API 具有以下参数, 只有 token 和 url 是强制性的,其余的都是可选的。

# 象征

  • 其他要求
  • 类型 string

所有调用都需要此参数

这是您的身份验证令牌。 你有两个令牌; 一个用于普通请求,另一个用于 JavaScript 请求。

当您需要抓取的内容是通过 JavaScript 生成时使用 JavaScript 令牌,因为它是 JavaScript 构建的页面(React、Angular 等),或者因为内容是在浏览器上动态生成的。

普通令牌

_USER_TOKEN_

JavaScript 令牌

_JS_TOKEN_

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# 网址

  • 其他要求
  • 类型 string

所有调用都需要此参数

您将需要一个 url 来抓取。 确保它以 http 或 https 开头,并且 完全编码.

例如,在以下网址中: https://github.com/crawlbase?tab=repositories 调用 API 时应对 url 进行编码,如下所示: https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# 格式

  • 可选
  • 类型 string

指示响应格式,或者 json or html. 默认为 html.

如果格式 html 使用时,Crawlbase 会在标头中向您返回响应参数(请参阅 [HTML 响应]/zh-cn/crawling-api/response/#html-response) 下文)。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories&format=json"

# 漂亮

  • 可选
  • 类型 boolean

如果您期待 json 响应,您可以通过使用来优化其可读性 &pretty=true.

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories&format=json&pretty=true"

# USER_AGENT

  • 可选
  • 类型 string

如果您想使用自定义用户代理发出请求,您可以在此处传递它,我们的服务器会将其转发到请求的 url。

我们建议 不是 使用这个参数,让我们的人工智能来处理它。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&user_agent=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_12_5%29+AppleWebKit%2F603.2.4+%28KHTML%2C+like+Gecko%29+Version%2F10.1.1+Safari%2F603.2.4&url=https%3A%2F%2Fpostman-echo.com%2Fheaders"

# 页面等待

  • 可选
  • 类型 number

如果您使用的是 JavaScript 令牌,则可以选择传递 page_wait 参数等待一定量 毫秒 在浏览器捕获生成的 html 代码之前。

这在页面需要几秒钟才能呈现或需要在捕获 html 之前加载一些 ajax 的情况下很有用。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_JS_TOKEN_&page_wait=1000&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# ajax_等待

  • 可选
  • 类型 boolean

如果您使用的是 JavaScript 令牌,则可以选择传递 ajax_wait 在获取 html 响应之前等待 ajax 请求完成的参数。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_JS_TOKEN_&ajax_wait=true&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# css_click_selector

  • 可选
  • 类型 string

# 单个 CSS 选择器

如果您使用 JavaScript 令牌,您可以选择传递 css_click_selector 参数以在浏览器捕获生成的 HTML 代码之前单击页面上的元素。

此参数接受完全指定且有效的 CSS 选择器。例如,您可以使用 ID 选择器,例如 #some-button,像这样的类选择器 .some-other-button,或属性选择器,例如 [data-tab-item="tab1"]。确保 CSS 选择器正确编码以避免错误非常重要。

请注意,如果页面上找不到选择器,请求将失败并显示 pc_status 595。即使找不到选择器,也要接收响应,您可以附加一个通用找到的选择器,例如 body,作为后备。例如: #some-button,body.

# 多个 CSS 选择器

为了适应在捕获页面内容之前可能需要顺序单击多个元素的场景, css_click_selector 参数现在可以接受多个 CSS 选择器。用管道分隔每个选择器 (|) 特点。确保整个值(包括分隔符)都经过 URL 编码,以避免出现任何解析问题。

假设你想点击一个带有 ID 的按钮 start-button 然后是班级的链接 next-page-link。你会构建你的 css_click_selector 参数如下:

  • 原始选择器: #start-button|.next-page-link
  • URL 编码: %23start-button%7C.next-page-link

将此参数附加到您的 API 请求中,以确保按指定的顺序单击这两个元素。

请确保提供的所有选择器均有效并出现在页面上,以避免错误。如果未找到任何选择器,请求将遵循上面指定的错误处理,失败并显示 pc_status 595 除非包含后备选择器。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_JS_TOKEN_&css_click_selector=%5Bdata-tab-item%3D%22overview%22%5D&page_wait=1000&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# 设备

  • 可选
  • 类型 string

可选地,如果您不想指定 user_agent 但您希望获得来自特定设备的请求,则可以使用此参数。

有两种选择: desktopmobile.

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&device=mobile&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# 获取cookies

  • 可选
  • 类型 boolean

或者,如果您需要获取原始网站在响应中设置的 cookie,您可以使用 &get_cookies=true 参数。

cookie 将在标头中返回(如果您使用,则在 json 响应中返回) &format=json)as original_set_cookie.

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&get_cookies=true&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# 获取标题

  • 可选
  • 类型 boolean

或者,如果您需要获取原始网站在响应中设置的标头,您可以使用 &get_headers=true 参数。

标头将在响应中返回为 original_header_name 默认情况下。 什么时候 &format=json 已通过,标题将返回为 original_headers.

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&get_headers=true&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# 请求标头

  • 可选
  • 类型 string

或者,如果您需要将请求标头发送到原始网站,您可以使用 &request_headers=EncodedRequestHeaders 参数。

示例请求标头: 接受语言:en-GB|接受编码:gzip

编码示例: &request_headers=接受语言%3Aen-GB%7C接受编码%3Agzip

请注意,API 并不允许所有请求标头。 我们建议您使用此测试网址测试发送的标头:https://postman-echo.com/headers

如果您需要发送一些 API 不允许的附加标头,请告诉我们标头名称,我们将为您的令牌授权它们。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&request_headers=accept-language%3Aen-GB%7Caccept-encoding%3Agzip&url=https%3A%2F%2Fpostman-echo.com%2Fheaders"

# 设置cookies

  • 可选
  • 类型 string

或者,如果您需要将 cookie 发送到原始网站,您可以使用 &cookies=EncodedCookies 参数。

示例 cookie: key1=value1; key2=value2; key3=value3

编码示例: &cookies=key1%3Dvalue1%3B%20key2%3Dvalue2%3B%20key3%3Dvalue3

我们建议您使用此测试网址测试发送的 cookie:https://postman-echo.com/cookies

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&cookies=key1%3Dvalue1%3B%20key2%3Dvalue2%3B%20key3%3Dvalue3&url=https%3A%2F%2Fpostman-echo.com%2Fcookies"

# cookies_session

  • 可选
  • 类型 string

如果您需要将每个请求返回的 cookie 发送到所有后续调用,您可以使用 &cookies_session= 参数。

这款 &cookies_session= 参数可以是任何值。 只需发送一个新值即可创建一个新的 cookie 会话(这将允许您将后续调用返回的 cookie 发送到具有该 cookie 会话值的下一个 API 调用)。 该值最多可包含 32 个字符,会话在最后一次 API 调用后 300 秒内过期。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&cookies_session=1234abcd&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# 截图

  • 可选
  • 类型 boolean

如果你正在使用 JavaScript 令牌, 你可以选择通过 &screenshot=true 获取屏幕截图的参数 JPEG 整个爬取页面的格式。

Crawlbase 将返回给你 screenshot_url 在响应标头中(或者在 json 响应中,如果您使用 &format=json)。 这 screenshot_url 一小时后到期。

请注意: 使用时 screenshot=true 参数,您可以使用这些附加参数自定义��幕截图输出:

  • mode: 调成 viewport 仅捕获视口而不是整个页面。默认为 fullpage.
  • width:指定最大宽度(以像素为单位)(仅适用于 mode=viewport)。默认为屏幕宽度。
  • height:指定最大高度(以像素为单位)(仅适用于 mode=viewport)。默认为屏幕高度。

示例: &screenshot=true&mode=viewport&width=1200&height=800

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_JS_TOKEN_&screenshot=true&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# 商店

  • 可选
  • 类型 boolean

可选择通过 &store=true 参数以将 API 响应的副本存储在 Crawlbase 云存储 (打开新窗口) (opens new window).

Crawlbase 将返回给你 storage_url 在响应标头中(或者在 json 响应中,如果您使用 &format=json).

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&store=true&url=https%3A%2F%2Fgithub.com%2Fcrawlbase%3Ftab%3Drepositories"

# 刮刀

  • 可选
  • 类型 string

返回根据指定刮板解析的信息。 检查 所有可用数据抓取工具的列表 (打开新窗口) (opens new window) 所有可用数据抓取工具的列表,以查看选择哪一个。

响应将以 JSON 形式返回。

请注意: Scraper 是一个可选参数。 如果您不使用它,您将收到页面的完整 HTML,以便您可以自由地抓取它。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&scraper=amazon-product-details&url=https%3A%2F%2Fwww.amazon.com%2Fdp%2FB0B7CBZZ16"

# 异步

  • 可选
  • 类型 boolean
  • 目前仅支持使用此参数的 linkedin.com。 如果您需要异步模式下的其他域,请与我们联系。

可选择通过 &async=true 参数异步抓取请求的 URL。Crawlbase 会将结果页面存储在 Crawlbase 云存储 (打开新窗口) (opens new window).

由于与 async=true,Crawlbase 将返回请求标识符 rid 在 json 响应中。 您将需要存储 RID 以从存储中检索文档。 有了 RID,您就可以使用 云存储 API (打开新窗口) (opens new window) 检索结果页面。

您可以使用 async=true 参数与其他 API 参数相结合,例如 &async=true&autoparse=true.

请求示例 async=true 拨打:

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&async=true&url=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fcrawlbase"

响应示例 async=true 拨打:

{ "rid": "1e92e8bff32c31c2728714d4" }

# 自动解析

  • 可选
  • 类型 boolean

可选地,如果您需要获取您请求的页面的抓取数据,您可以通过 &autoparse=true 参数。

响应将以 JSON 形式返回。 响应的结构因您发送的 URL 而异。

请注意: &autoparse=true 是一个可选参数。 如果您不使用它,您将收到页面的完整 HTML,以便您可以自由地抓取它。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&autoparse=true&url=https%3A%2F%2Fwww.amazon.com%2Fdp%2FB0B7CBZZ16"

# 国家

  • 可选
  • 类型 string

如果您希望从特定国家/地区定位您的请求,您可以使用 &country= 参数,如 &country=US (两个字符的国家代码)。

请注意,指定国家/地区可以减少您返回的成功请求数量,因此请明智地使用它,并且仅在需要进行地理定位爬网时使用。

另请注意,像亚马逊这样的一些网站是通过不同的特殊代理路由的,无论是否在列表中,都允许所有国家/地区。

您可以访问以下��家

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&country=US&url=https%3A%2F%2Fpostman-echo.com%2Fip"

# tor_网络

  • 可选
  • 类型 boolean

如果你想通过 Tor 网络爬取洋葱网站,你可以通过 &tor_network=true 参数。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_USER_TOKEN_&tor_network=true&url=https%3A%2F%2Fwww.facebookcorewwwi.onion%2F"

# 滚动

  • 可选
  • 类型 boolean

如果你正在使用 JavaScript 令牌, 你可以选择通过 &scroll=true 对于 API,这将默认滚动 10 秒的 scroll_interval。

如果您想滚动超过 10 秒,请发送 &scroll=true&scroll_interval=20. 这些参数将指示浏览器在加载页面后滚动 20 秒。 最大滚动间隔为 60 秒,滚动 60 秒后,系统会捕获数据并将其返回给您。

默认滚动间隔为 10 秒。 每 5 秒成功滚动算作 Crawling API 上的额外 JS 请求,所以让我们假设您发送一个 scroll_interval 20,我们的系统尝试滚动页面最多 20 秒,如果它只能滚动 10 秒,只消耗了 2 个额外的请求,而不是 4 个。

请注意: 如果您打算滚动 90 秒,请确保将您的连接保持打开 60 秒。

  • curl
  • ruby
  • node
  • php
  • python
  • go
curl "https://api.crawlbase.com/?token=_JS_TOKEN_&scroll=true&url=https%3A%2F%2Fwww.reddit.com%2Fsearch%2F%3Fq%3Dcrawlbase"