crawlbaseDocs
Se connecter

Aperçu

La catégorie Développeurs couvre les plateformes dont les équipes d''ingénierie extraient des données pour l''intelligence open source, l''analyse des dépendances et de l''écosystème, la recherche en developer relations, les signaux de recrutement/sourcing et l''extraction de questions-réponses techniques. Chaque scraper accepte une URL cible, renvoie du JSON analysé en quelques millisecondes et s''appuie sur les mêmes proxys résidentiels et le même contournement anti-bot qui alimentent la Crawling API - même SLA de disponibilité, même authentification par un seul token, aucune configuration par cible.

L''ensemble de base cible GitHub, le plus grand hébergeur de code source public. Choisissez un scraper selon la surface dont vous avez besoin : une page de dépôt unique, une page de résultats de recherche de dépôts (SERP) ou un profil utilisateur/organisation. Chaque scraper cible un seul type de page afin que la structure du JSON reste stable même lorsque le HTML sous-jacent change - et vous ne payez que pour les réponses réussies, si bien que les nouvelles tentatives face à une source instable n''apparaissent pas sur votre facture.

Stack Overflow est également couvert. Il fait partie du réseau Stack Exchange, si bien que les deux mêmes scrapers agnostiques à l''hôte le traitent - il n''y a pas de scraper Stack Overflow distinct à apprendre. Pointez stackexchange-serp vers une liste de questions, un tag ou une page de recherche (par ex. https://stackoverflow.com/questions/tagged/python) pour obtenir un tableau structuré de questions avec scores, nombres de réponses et de vues, et tags ; pointez stackexchange-thread vers une question unique (par ex. https://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-processing-an-unsorted-array) pour obtenir le corps complet ainsi que chaque réponse et commentaire. L''analyseur du réseau traite le balisage que l''URL soit sur stackoverflow.com ou sur tout autre site *.stackexchange.com.

Exercism est couvert par quatre scrapers dédiés à cette plateforme de pratique du code. Pointez exercism-serp vers une liste d''exercices d''une piste (par ex. https://exercism.org/tracks/ruby/exercises) pour obtenir chaque exercice avec son slug, sa difficulté et son résumé ; exercism-exercise vers un exercice unique (par ex. /tracks/ruby/exercises/two-fer) pour l''intégralité de ses instructions en texte et en HTML ; exercism-solutions vers les solutions communautaires d''un exercice pour un tableau paginé de solutions publiées avec l''auteur, le langage et le nombre d''étoiles ; et exercism-solution vers une solution publiée unique (par ex. /tracks/ruby/exercises/two-fer/solutions/handle) pour ses itérations, ses métadonnées et son code source.

Pipelines courants :

  • Surveillance d''écosystème : interrogez github-repository pour les projets dont vous dépendez, capturez des instantanés de stars, forks, openIssuesCount, latestRelease et archived, et alertez en cas de Δ.
  • Découverte : alimentez une liste d''appels github-repository avec des requêtes github-serp (par ex. une recherche par thème ou mot-clé) pour enrichir chaque résultat avec des métadonnées complètes.
  • Sourcing de développeurs / DevRel : résolvez un github-profile pour lire followers, publicRepos, pinnedRepos et organizations.
  • Dependency intelligence : suivez primaryLanguage, languages, license et topics sur un portefeuille de dépôts pour repérer les risques de licence ou de maintenance.
  • Extraction de questions-réponses : appliquez stackexchange-serp à un tag ou une recherche (par ex. stackoverflow.com/questions/tagged/python) puis répartissez vers stackexchange-thread par question pour capturer les réponses acceptées, les blocs de code et les scores de votes - un corpus propre pour l''automatisation du support ou l''entraînement de modèles.
  • Extraction de solutions : exécutez exercism-serp sur une piste, répartissez vers exercism-solutions par exercice, puis exercism-solution par auteur pour constituer un corpus labellisé de code fonctionnel dans plusieurs langages pour un même problème.

Chaque champ reflète directement ce que la page rend, et les champs nullable reviennent en null lorsque la page source omet la valeur, au lieu de disparaître silencieusement - votre schéma reste ainsi prévisible d''un appel à l''autre. Aucun token d''API GitHub ou Stack Exchange, aucune jonglerie avec les limites de débit et aucune comptabilité de pagination de votre côté : le scraper gère la récupération et l''analyse, et vous récupérez les champs dont vous avez réellement besoin.

GitHub

Trois scrapers couvrant les surfaces GitHub les plus interrogées par les équipes - une page de dépôt unique, les résultats de recherche de dépôts et les profils utilisateur ou organisation.

  • GitHub Repository - page de dépôt (description, langage, stars, forks, issues, licence, dernière release).
  • GitHub SERP - page de résultats de recherche de dépôts sur GitHub.
  • GitHub Profile - profil utilisateur ou organisation (bio, followers, dépôts épinglés, organisations).

Stack Overflow

Stack Overflow est servi par les scrapers Stack Exchange - pointez-les vers des URL stackoverflow.com. Utilisez stackexchange-serp pour les listes de questions, les pages de tags et les résultats de recherche, et stackexchange-thread pour une question unique avec son fil de réponses complet. Les deux sont agnostiques à l'hôte sur l'ensemble du réseau Stack Exchange, si bien que la même forme d'appel fonctionne pour n'importe quel site *.stackexchange.com.

  • Stack Overflow Questions - une page de questions, de tags (par ex. /questions/tagged/python) ou de résultats de recherche Stack Overflow sous forme de tableau structuré avec scores, nombres de réponses et de vues, tags et pagination.
  • Stack Overflow Thread - une question Stack Overflow unique avec son corps complet ainsi que chaque réponse et commentaire, avec scores, état accepté et auteurs.

Exercism

Quatre scrapers couvrant la plateforme de pratique du code Exercism - une liste d'exercices d'une piste, un exercice unique avec ses instructions, une liste des solutions communautaires d'un exercice et une solution publiée unique. Pointez-les vers des URL exercism.org ; les slugs de piste et d'exercice sont lus depuis le chemin de l'URL.

  • Exercism Exercises - une page de liste d'exercices d'une piste (par ex. /tracks/ruby/exercises) sous forme de tableau structuré d'exercices avec slug, titre, difficulté et résumé.
  • Exercism Exercise - une page de présentation d'un exercice unique avec son titre, sa difficulté et l'intégralité de ses instructions en texte et en HTML.
  • Exercism Solutions - une page des solutions communautaires d'un exercice sous forme de tableau paginé de solutions publiées avec l'auteur, le langage, les étoiles et le nombre d'itérations.
  • Exercism Solution - une solution communautaire publiée unique avec ses itérations, son langage, son nombre d'étoiles et son code source.

Kaggle

Quatre scrapers couvrant la plateforme de data science Kaggle - la recherche de jeux de données, un jeu de données unique avec ses fichiers et sa licence, la recherche de notebooks et un notebook unique avec ses métadonnées et ses entrées. Pointez-les vers des URL kaggle.com ; les slugs de propriétaire et de jeu de données ou de notebook sont lus depuis le chemin de l'URL.

  • Kaggle Dataset Search - une page de recherche ou de liste de jeux de données (par ex. /datasets?search=heart+disease) sous forme de tableau classé de jeux de données avec le propriétaire, la taille, la note d'utilisabilité, les téléchargements et le nombre de notebooks.
  • Kaggle Dataset - une page de jeu de données unique avec sa description, ses mots-clés, son propriétaire, sa licence, sa liste de fichiers et ses compteurs d'engagement.
  • Kaggle Notebook Search - une page de recherche ou de liste de notebooks (par ex. /code?searchQuery=titanic) sous forme de tableau classé de notebooks avec l'auteur, les co-auteurs, le contexte de compétition, les votes et les commentaires.
  • Kaggle Notebook - une page de notebook unique avec son auteur, son langage, son temps d'exécution, son historique de versions, ses compteurs d'engagement et ses entrées rattachées.

LeetCode

Quatre scrapers couvrant la plateforme d'entraînement au code LeetCode - la liste des problèmes, un problème unique avec son énoncé et son code de départ, l'onglet des solutions de la communauté et une publication de solution unique. Pointez-les vers des URL leetcode.com ; les slugs de problème et de publication sont lus depuis le chemin de l'URL.

  • LeetCode Problem Set - une liste de problèmes (par ex. /problemset/?difficulty=EASY) sous forme de tableau de problèmes avec l'identifiant, la difficulté, le taux d'acceptation et l'indicateur premium.
  • LeetCode Problem - une page de problème unique avec son énoncé, sa difficulté, ses tags de thème, ses indices, ses extraits de code de départ et ses compteurs d'engagement.
  • LeetCode Solutions - l'onglet des solutions de la communauté d'un problème sous forme de tableau de publications avec l'auteur, les tags et les compteurs d'engagement.
  • LeetCode Solution - une publication de solution de la communauté unique avec son texte, ses blocs de code extraits et ses compteurs d'engagement.

Exemple d'appel

Ci-dessous : un seul appel github-repository. Remplacez YOUR_TOKEN par votre token de la Crawling API ; les seuls paramètres requis sont l'URL cible et le nom du scraper.

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

Exemple de réponse

{
  "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
}

Référence complète (paramètres, les 4 langages SDK, cas particuliers) : GitHub Repository - référence complète