GitHub SERP
Analysez une page de résultats de recherche de dépôts GitHub en un tableau structuré de dépôts avec les étoiles, le langage, les sujets et les informations de pagination.
Utilisation de l'API
Ajoutez &scraper=github-serp à une requête Crawling API. Encodez en URL l'URL cible dans le paramètre url. Une requête renvoie une page ; suivez pagination.next_page_url pour continuer, jusqu'à la limite de 1000 résultats de GitHub.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://github.com/search?q=web+scraping&type=repositories' \
--data-urlencode 'scraper=github-serp' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://github.com/search?q=web+scraping&type=repositories',
{'scraper': 'github-serp'}
)
import json
data = json.loads(res['body'])const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });
const res = await api.get(
'https://github.com/search?q=web+scraping&type=repositories',
{ scraper: 'github-serp' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://github.com/search?q=web+scraping&type=repositories', scraper: 'github-serp')
data = JSON.parse(res.body)Exemple d'URL en entrée
L'URL passée dans le paramètre url (décodée pour plus de lisibilité) :
https://github.com/search?q=web+scraping&type=repositoriesStructure de la réponse
Corps de la réponse JSON. Les types de champs peuvent être null lorsque la page source omet la valeur.
Requête de recherche ayant produit ces résultats.
Type de recherche, p. ex.
repositories.Champ de tri, p. ex.
stars. Absent lors du tri par meilleure correspondance.Sens du tri,
desc ou asc.Nombre total de résultats signalé sur toutes les pages.
Numéro de la page actuelle.
Informations de pagination pour parcourir l'ensemble des résultats.
Numéro de la page actuelle.
Numéro de page le plus élevé que GitHub expose pour cette requête.
URL absolue de la page suivante, ou
null à la dernière page / limite de résultats.URL absolue de la page précédente, ou
null sur la première page.True tant qu'une page suivante existe sous la limite de 1000 résultats.
Résultats par dépôt (voir les champs ci-dessous).
Rang du résultat sur cette page (à partir de 1).
Nom du dépôt.
Identifiant du propriétaire (utilisateur ou organisation).
Identifiant complet
owner/name.URL absolue du dépôt.
Description du dépôt.
Langage de programmation principal.
Nombre d'étoiles.
Étiquettes de sujets affichées sur la carte de résultat.
Horodatage de dernière mise à jour ou libellé relatif, lorsque présent.
Licence affichée sur la carte de résultat, lorsque présente.
True si le dépôt est une archive publique.
True si le propriétaire peut être sponsorisé.
Exemple de réponse
{
"query": "web scraping",
"searchType": "repositories",
"sort": "stars",
"order": "desc",
"totalResults": 133816,
"currentPage": 1,
"pagination": {
"current_page": 1,
"total_pages": 100,
"next_page_url": "https://github.com/search?q=web+scraping&type=repositories&s=stars&o=desc&p=2",
"previous_page_url": null,
"has_next": true
},
"results": [
{
"position": 1,
"name": "scrapy",
"owner": "scrapy",
"fullName": "scrapy/scrapy",
"url": "https://github.com/scrapy/scrapy",
"description": "Scrapy, a fast high-level web crawling & scraping framework for Python.",
"primaryLanguage": "Python",
"stars": 63119,
"topics": ["python", "crawler", "framework", "scraping", "crawling"],
"updatedAt": null,
"license": null,
"archived": false,
"sponsorable": false
}
]
}