GitHub Repository
Разбирайте страницу одного репозитория GitHub в структурированный JSON со звёздами, форками, наблюдателями, языками, темами, лицензией, открытыми issue и PR, веткой по умолчанию и последним релизом.
Использование API
Добавьте &scraper=github-repository к запросу Crawling API. URL-кодируйте целевой URL в параметре url.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://github.com/rails/rails' \
--data-urlencode 'scraper=github-repository' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://github.com/rails/rails',
{'scraper': 'github-repository'}
)
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/rails/rails',
{ scraper: 'github-repository' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://github.com/rails/rails', scraper: 'github-repository')
data = JSON.parse(res.body)Пример входного URL
URL, передаваемый в параметре url (URL-декодированный для удобства чтения):
https://github.com/rails/railsСтруктура ответа
Тело ответа в формате JSON. Типы полей могут быть null, если исходная страница не содержит значения.
Название репозитория.
Логин владельца (пользователя или организации).
Полный идентификатор
owner/name.Канонический URL репозитория.
Описание репозитория (подзаголовок под шапкой).
Основной язык программирования (первая запись в
languages).Языки, перечисленные в полосе языков репозитория.
Количество звёзд.
Количество форков.
Количество наблюдателей.
True, если вкладка Issues включена.
Количество открытых issue.
Количество открытых pull request.
Теги тем репозитория.
Название лицензии, показанное на боковой панели.
Название ветки по умолчанию.
Тег последнего релиза, если у репозитория есть релизы.
True, если присутствует отрендеренный README.
True, если репозиторий заархивирован (только для чтения).
Пример ответа
{
"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
}