# 参数
该 API 具有以下参数, 只有 token 和 url 是强制性的,其余的都是可选的。
# 象征
- 其他要求
- Type
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"
# 网址
- 其他要求
- Type
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"
# 格式
- 可选
- Type
string
指示响应格式,或者 json
or html
. 默认为 html
.
如果格式 html
使用时, crawlbase 将在 headers 中向您发送回响应参数(请参阅 HTML 响应 下文)。
- 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"
# 漂亮
- 可选
- Type
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
- 可选
- Type
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"
# 页面等待
- 可选
- Type
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_等待
- 可选
- Type
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
- 可选
- Type
string
如果您使用的是 JavaScript 令牌,则可以选择传递 css_click_selector
在浏览器捕获生成的 html 代码之前单击页面上的元素的参数。
此参数需要完全指定且有效的 CSS 选择器。 例如,您可以使用 ID 选择器,例如 #some-button
,一个类选择器,例如 .some-other-button
,或者像这样的属性选择器 [data-tab-item="tab1"]
。 只需确保 CSS 选择器经过适当编码即可。
请注意,请求将失败 pc_status
595
如果在页面中找不到选择器。 如果即使在页面中找不到选择器,您仍想获得响应,请考虑使用始终发现附加的选择器,例如 body
。 这是一个例子: #some-button,body
- 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"
# 设备
- 可选
- Type
string
可选地,如果您不想指定 user_agent 但您希望获得来自特定设备的请求,则可以使用此参数。
有两种选择: desktop
和 mobile
.
- 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
- 可选
- Type
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"
# 获取标题
- 可选
- Type
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"
# 请求标头
- 可选
- Type
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
- 可选
- Type
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
- 可选
- Type
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"
# 截图
- 可选
- Type
boolean
如果你正在使用 JavaScript 令牌, 你可以选择通过 &screenshot=true
获取屏幕截图的参数 JPEG
整个爬取页面的格式。
crawlbase 会给你发回 screenshot_url
在响应标头中(或者在 json 响应中,如果您使用 &format=json
).
screenshot_url
一小时后到期。
- 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"
# 商店
- 可选
- Type
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"
# 刮刀
- 可选
- Type
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"
# 异步
- 可选
- Type
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" }
# 自动解析
- 可选
- Type
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"
# 国家
- 可选
- Type
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_网络
- 可选
- Type
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"
# 滚动
- 可选
- Type
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"