# параметры

API имеет следующие параметры: Обязательными являются только токен и 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"

# URL

  • необходимые
  • Тип string

Этот параметр обязателен для всех вызовов.

Вам понадобится URL для сканирования. Убедитесь, что он начинается с http или https и что полностью закодирован.

Например, в следующем URL-адресе: https://github.com/crawlbase?tab=repositories URL-адрес должен быть закодирован при вызове API следующим образом: 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-ответ ниже).

  • 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-код.

Это полезно в случаях, когда отрисовка страницы занимает несколько секунд или необходимо загрузить какой-либо ajax-код перед захватом HTML-кода.

  • 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_wait

  • По желанию
  • Тип boolean

Если вы используете токен JavaScript, вы можете дополнительно передать ajax_wait параметр для ожидания завершения ajax-запросов перед получением html-ответа.

  • 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, чтобы избежать проблем с анализом.

Предположим, вы хотите нажать кнопку с идентификатором 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, но хотите получать запросы с определенного устройства, вы можете использовать этот параметр.

Доступны два варианта: 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"

# get_cookies

  • По желанию
  • Тип boolean

При желании, если вам нужно получить файлы cookie, которые исходный веб-сайт устанавливает в ответе, вы можете использовать &get_cookies=true Параметр.

Файлы cookie будут возвращены в заголовке (или в ответе JSON, если вы используете &format=json) как 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=accept-language%3Aen-GB%7Caccept-encoding%3Agzip

Обратите внимание, что не все заголовки запросов разрешены API. Мы рекомендуем вам тестировать заголовки, отправленные с помощью этого тестового URL: 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"

# set_cookies

  • По желанию
  • Тип string

При желании, если вам необходимо отправлять файлы cookie на исходный сайт, вы можете использовать &cookies=EncodedCookies Параметр.

Примеры файлов cookie: key1=value1; key2=value2; key3=value3

Пример кодировки: &cookies=key1%3Dvalue1%3B%20key2%3Dvalue2%3B%20key3%3Dvalue3

Мы рекомендуем вам протестировать отправленные файлы cookie, используя этот тестовый URL: 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 из последующих вызовов в следующие вызовы API с этим значением сеанса cookie). Значение может быть максимум 32 символа, а сеансы истекают через 300 секунд после последнего вызова API.

  • 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 Cloud Storage (открывается новое окно) (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 Cloud Storage (открывается новое окно) (opens new window).

В результате звонка с async=true, Crawlbase отправит вам обратно идентификатор запроса rid в ответе json. Вам нужно будет сохранить RID для извлечения документа из хранилища. С RID вы можете затем использовать облако Storage 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 (двухбуквенный код страны).

Пожалуйста, примите во внимание, что указание страны может уменьшить количество успешных запросов, поэтому используйте эту возможность с умом и только в тех случаях, когда требуется сканирование геолокации.

Также обратите внимание, что некоторые сайты, такие как Amazon, маршрутизируются через различные специальные прокси-серверы, и все страны разрешены независимо от того, находятся ли они в списке или нет.

У вас есть доступ к следующим странам

  • 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_network

  • По желанию
  • Тип boolean

Если вы хотите сканировать onion-сайты через сеть 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 это по умолчанию будет прокручивать в течение scroll_interval 10 секунд.

Если вы хотите прокрутить больше 10 секунд, отправьте &scroll=true&scroll_interval=20. Эти параметры заставят браузер прокручивать страницу в течение 20 секунд после загрузки. Максимальный интервал прокрутки составляет 60 секунд, после 60 секунд прокрутки система собирает данные и возвращает их вам.

Интервал прокрутки по умолчанию составляет 10 секунд. Каждые 5 секунд успешной прокрутки считаются дополнительным запросом JS на Crawling API, поэтому предположим, что вы отправляете scroll_interval 20, наша система пытается прокрутить страницу максимум 20 секунд; если бы она смогла прокрутить только 10 секунд, было бы использовано только 2 дополнительных запроса вместо 4.

Примечание: Если вы собираетесь прокручивать в течение 90 секунд, убедитесь, что ваше соединение открыто не менее 60 секунд.

Важно: Некоторые домены требуют более высоких системных тайм-аутов, которые устанавливаются автоматически. В сочетании с scroll и page_wait параметры, это может привести к дополнительным запросам. Обратитесь �� службу поддержки, если вам нужно оптимизировать эти настройки для определенных доменов.

  • 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"