crawlbaseДокументация
Войти

Обзор

Категория «Разработчики» охватывает платформы, из которых инженерные команды извлекают данные для open source-разведки, анализа зависимостей и экосистемы, исследований developer relations, сигналов найма/сорсинга и добычи технических вопросов и ответов. Каждый скрапер принимает целевой URL, возвращает разобранный JSON за миллисекунды и опирается на те же резидентные прокси и обход анти-бота, что питают Crawling API - тот же SLA доступности, та же аутентификация одним токеном, без настройки для каждой цели.

Основной набор нацелен на GitHub, крупнейший хостинг публичного исходного кода. Выбирайте скрапер по нужной вам поверхности: отдельная страница репозитория, страница результатов поиска репозиториев (SERP) или профиль пользователя/организации. Каждый скрапер нацелен на один тип страницы, поэтому структура JSON остаётся стабильной даже при изменении лежащего в основе HTML - и вы платите только за успешные ответы, так что повторные попытки к нестабильному источнику не появятся в вашем счёте.

Stack Overflow тоже охвачен. Он входит в сеть Stack Exchange, поэтому его обрабатывают те же два независимых от хоста скрапера - отдельного скрапера Stack Overflow изучать не нужно. Направьте stackexchange-serp на список вопросов, тег или страницу поиска (например, https://stackoverflow.com/questions/tagged/python) для получения структурированного массива вопросов со счётом, числом ответов и просмотров, и тегами; направьте stackexchange-thread на отдельный вопрос (например, https://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-processing-an-unsorted-array) для получения полного текста плюс каждого ответа и комментария. Парсер сети обрабатывает разметку независимо от того, находится URL на stackoverflow.com или на любом другом сайте *.stackexchange.com.

Exercism охвачен четырьмя скраперами для платформы учебной практики программирования. Направьте exercism-serp на список упражнений трека (например, https://exercism.org/tracks/ruby/exercises) для получения каждого упражнения с его слагом, сложностью и описанием; exercism-exercise - на отдельное упражнение (например, /tracks/ruby/exercises/two-fer) для получения полных инструкций в виде текста и HTML; exercism-solutions - на сообщества решений упражнения для получения постраничного массива опубликованных решений с автором, языком и количеством звёзд; и exercism-solution - на отдельное опубликованное решение (например, /tracks/ruby/exercises/two-fer/solutions/handle) для получения его итераций, метаданных и исходного кода.

Типичные конвейеры:

  • Мониторинг экосистемы: опрашивайте github-repository по проектам, от которых вы зависите, снимайте снимки stars, forks, openIssuesCount, latestRelease и archived и оповещайте при Δ.
  • Обнаружение: подавайте запросы github-serp (например, поиск по теме или ключевому слову) в список вызовов github-repository, чтобы обогатить каждый результат полными метаданными.
  • Сорсинг разработчиков / DevRel: разрешайте github-profile, чтобы прочитать followers, publicRepos, pinnedRepos и organizations.
  • Аналитика зависимостей: отслеживайте primaryLanguage, languages, license и topics по портфелю репозиториев, чтобы выявлять риски лицензирования или сопровождения.
  • Добыча вопросов и ответов: примените stackexchange-serp к тегу или поиску (например, stackoverflow.com/questions/tagged/python), а затем разветвляйтесь на stackexchange-thread по каждому вопросу, чтобы захватить принятые ответы, блоки кода и счёт голосов - чистый корпус для автоматизации поддержки или обучения моделей.
  • Добыча решений: запустите exercism-serp на треке, разветвитесь на exercism-solutions по каждому упражнению, а затем на exercism-solution по каждому автору, чтобы собрать размеченный корпус рабочего кода на разных языках для одной и той же задачи.

Каждое поле напрямую отражает то, что рендерит страница, а nullable-поля возвращаются как null, когда исходная страница опускает значение, вместо того чтобы молча исчезать - так ваша схема остаётся предсказуемой от вызова к вызову. Никакого токена API GitHub или Stack Exchange, никакого жонглирования лимитами запросов и никакого учёта пагинации с вашей стороны: скрапер берёт на себя загрузку и разбор, а вы получаете именно те поля, которые вам действительно нужны.

GitHub

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

  • GitHub Repository - страница репозитория (описание, язык, stars, forks, issues, лицензия, последний релиз).
  • GitHub SERP - страница результатов поиска репозиториев на GitHub.
  • GitHub Profile - профиль пользователя или организации (биография, подписчики, закреплённые репозитории, организации).

Stack Overflow

Stack Overflow обслуживается скраперами Stack Exchange - направляйте их на URL stackoverflow.com. Используйте stackexchange-serp для списков вопросов, страниц тегов и результатов поиска, а stackexchange-thread - для отдельного вопроса с его полной веткой ответов. Оба независимы от хоста в рамках всей сети Stack Exchange, поэтому одна и та же форма вызова работает для любого сайта *.stackexchange.com.

  • Stack Overflow Questions - страница вопросов, тегов (например, /questions/tagged/python) или результатов поиска Stack Overflow в виде структурированного массива со счётом, числом ответов и просмотров, тегами и пагинацией.
  • Stack Overflow Thread - отдельный вопрос Stack Overflow с его полным текстом плюс каждым ответом и комментарием, со счётом, статусом принятия и авторами.

Exercism

Четыре скрапера, охватывающие платформу учебной практики программирования Exercism - список упражнений трека, отдельное упражнение с его инструкциями, список сообществ решений упражнения и отдельное опубликованное решение. Направляйте их на URL exercism.org; слаги трека и упражнения считываются из пути URL.

  • Exercism Exercises - страница списка упражнений трека (например, /tracks/ruby/exercises) в виде структурированного массива упражнений со слагом, заголовком, сложностью и описанием.
  • Exercism Exercise - страница обзора отдельного упражнения с его заголовком, сложностью и полными инструкциями в виде текста и HTML.
  • Exercism Solutions - страница сообществ решений упражнения в виде постраничного массива опубликованных решений с автором, языком, звёздами и числом итераций.
  • Exercism Solution - отдельное опубликованное решение сообщества с его итерациями, языком, количеством звёзд и исходным кодом.

Kaggle

Четыре скрапера, охватывающие платформу для дата-сайенса Kaggle - поиск датасетов, отдельный датасет с его файлами и лицензией, поиск ноутбуков и отдельный ноутбук с его метаданными и входными данными. Направляйте их на URL kaggle.com; слаги владельца и датасета или ноутбука считываются из пути URL.

  • Kaggle Dataset Search - страница поиска или списка датасетов (например, /datasets?search=heart+disease) в виде ранжированного массива датасетов с владельцем, размером, оценкой удобства использования, числом загрузок и количеством ноутбуков.
  • Kaggle Dataset - страница отдельного датасета с его описанием, ключевыми словами, владельцем, лицензией, списком файлов и счётчиками вовлечённости.
  • Kaggle Notebook Search - страница поиска или списка ноутбуков (например, /code?searchQuery=titanic) в виде ранжированного массива ноутбуков с автором, соавторами, контекстом соревнования, голосами и комментариями.
  • Kaggle Notebook - страница отдельного ноутбука с его автором, языком, временем выполнения, историей версий, счётчиками вовлечённости и прикреплёнными входными данными.

LeetCode

Четыре скрапера, охватывающие платформу для практики программирования LeetCode - список задач, отдельная задача с её условием и заготовками кода, вкладка решений сообщества и отдельная публикация решения. Направляйте их на URL leetcode.com; слаги задачи и публикации считываются из пути URL.

  • LeetCode Problem Set - список задач (например, /problemset/?difficulty=EASY) в виде массива задач с идентификатором, сложностью, процентом принятия и признаком премиум-доступа.
  • LeetCode Problem - страница отдельной задачи с её условием, сложностью, тематическими тегами, подсказками, заготовками кода и счётчиками вовлечённости.
  • LeetCode Solutions - вкладка решений сообщества для задачи в виде массива публикаций с автором, тегами и счётчиками вовлечённости.
  • LeetCode Solution - отдельная публикация решения сообщества с её текстом, извлечёнными блоками кода и счётчиками вовлечённости.

Пример вызова

Ниже: один вызов github-repository. Замените YOUR_TOKEN на ваш токен Crawling API; единственные обязательные параметры - целевой URL и имя скрапера.

curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
  --data-urlencode 'url=https://github.com/rails/rails' \
  --data-urlencode 'scraper=github-repository' -G

Пример ответа

{
  "name": "rails",
  "owner": "rails",
  "fullName": "rails/rails",
  "url": "https://github.com/rails/rails",
  "description": "Ruby on Rails",
  "primaryLanguage": "Ruby",
  "languages": ["Ruby", "JavaScript", "HTML", "SCSS", "CSS", "Dockerfile"],
  "stars": 58789,
  "forks": 22414,
  "watchers": 2400,
  "hasIssues": true,
  "openIssuesCount": 478,
  "openPrsCount": 1081,
  "topics": ["ruby", "rails", "html", "activerecord", "framework", "mvc", "activejob"],
  "license": "MIT license",
  "defaultBranch": "main",
  "latestRelease": "v8.1.3",
  "readmePresent": true,
  "archived": false
}

Полный справочник (параметры, все 4 языка SDK, крайние случаи): GitHub Repository - полный справочник