Ich möchte Liste von Github Trending Repos wie folgt erhalten - https://github.com/trending?l=java , aber ich fand keine ähnliche Anfrage Methoden um https://developer.github.com/v3/, wie kann ich JSON Antwort mit Trending Repos bekommen?Wie bekomme ich eine Liste der Trending Github Repositories von github api?
Antwort
GitHub scheint ihre API zu verwenden, um die Trendseite zu schreiben und sie nicht als eine bestimmte API darzustellen. Sie müssen die Repository Search API verwenden. Ich habe die examples on this page gefolgt, die Ihre Bedürfnisse durch lösen könnte:
# We'll use the `date` command to get the date for "7 days ago"
$ date -v-7d '+%Y-%m-%d'
# => 2013-07-15
curl -G https://api.github.com/search/repositories --data-urlencode "sort=stars" --data-urlencode "order=desc" --data-urlencode "q=language:java" --data-urlencode "q=created:>`date -v-7d '+%Y-%m-%d'`"
Und dann von dort aus gehen. Sie können auch Ihr Leben viel einfacher machen, indem jq
auf OS X oder anderen Plattformen zu installieren schönere Ausgabe zu erhalten:
curl -G https://api.github.com/search/repositories --data-urlencode "sort=stars" --data-urlencode "order=desc" --data-urlencode "q=language:java" --data-urlencode "q=created:>`date -v-7d '+%Y-%m-%d'`" | jq ".items[0,1,2] | {name, description, language, watchers_count, html_url}"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- -- 77 161k 77 125k 0 0 131k 0 0:00:01 --:--:-- 0100 161k 100 161k 0 0 163k 0 --:--:-- --:--:-- --:--:-- 163k
{
"name": "vibrant.js",
"description": "Extract prominent colors from an image. JS port of Android's Palette.",
"language": "JavaScript",
"watchers_count": 1466,
"html_url": "https://github.com/jariz/vibrant.js"
}
{
"name": "JSPatch",
"description": "JSPatch bridge Objective-C and JavaScript using the Objective-C runtime. You can call any Objective-C class and method in JavaScript by just including a small engine.",
"language": "Objective-C",
"watchers_count": 830,
"html_url": "https://github.com/bang590/JSPatch"
}
{
"name": "KRVideoPlayer",
"description": "类似Weico的播放器,支持竖屏模式下全屏播放",
"language": "Objective-C",
"watchers_count": 524,
"html_url": "https://github.com/36Kr-Mobile/KRVideoPlayer"
}
Derzeit gibt es keine GitHub API ist Liste der Trending-Repositorys zu bekommen. Die einzige Möglichkeit besteht darin, Elemente über Selektoren auf der Webseite zu crawlen. Sie können https://github.com/trending in Chrome öffnen und den folgenden Code in devtools Konsole ausführen:
$$('ol.repo-list li h3').forEach(el => console.log(el.innerText));
Dies wird Ausgabe der Liste der Repositorys Namen Trending. Um es automatisierter zu machen, betrachten Sie Headles Chrome oder andere ähnliche Werkzeuge.
Es gibt auch mehrere Projekte, die diese Aufgabe bereits in verschiedenen Sprachen gelöst haben. Zum Beispiel:
- 1. Nicht alle Repositories durch Github API
- 2. Wie erkennt Github gespiegelte Repositories?
- 3. Wie bekomme ich "meine Pull Requests" von github api?
- 4. Github Private Repositories und Beiträge
- 5. bekommen alle GitHub Benutzer über Github-api
- 6. GitHub API populäre Repos
- 7. Github Api - Zugriff auf organisatorische Repositories mit persönlichen AccessToken
- 8. Bedeutung von lib-Verzeichnis in Github-Repositories
- 9. Wie bekomme ich alle öffentlichen Github-Commits eines Benutzers?
- 10. github api Anzahl der Pull-Requests abrufen
- 11. GitHub "Ihre Beiträge" und private Repositories
- 12. Wie bekomme ich Seiten nach 10 mit Github API v3?
- 13. Alle Suchergebnisse von Github API erhalten
- 14. Wie lösche ich Repositories, die zu Github beigetragen haben?
- 15. Github, eine Github api Anfrage im Namen meines Kunden
- 16. Wie kann ich mehrere gegabelte Repositories auf GitHub zusammenführen?
- 17. Wie erstelle ich einen verwaisten Zweig von der Github API?
- 18. So verwalten Sie Repositories auf GitHub
- 19. API-Schlüsselverschlüsselung für Github?
- 20. Protokollverletzung mit Github api
- 21. Was sind markierte Repositories in Github?
- 22. Wie nach Code in GitHub mit GitHub API suchen?
- 23. Ist es möglich, GitHub Wiki-Inhalte von Github api
- 24. Kann ich Repositories in Ordnern auf Github anordnen?
- 25. GitHub - Liste verpflichtet durch Autor
- 26. Welche Bedeutung hat die Anzahl der Sterne eines GitHub-Repositories?
- 27. GitHub API - wie 2 Commits zu vergleichen
- 28. Wie verwende ich die ssh-Authentifizierung mit der github-API?
- 29. Wie bekomme ich die rohe Version eines Git von Github?
- 30. Klonen von privaten BitBucket-Repositories in GitHub-Desktop-App
schön, aber wenn ich mich nicht täusche, fordern Sie mit dem Parameter "q = erstellt:>' date" zurückkehren Repositories, die später als vor 7 Tagen erstellt wurden. Ich denke, das Trending-Repository ist derjenige, der die meisten Sterne erhielt, trotz des Erstellungsdatums – Lester
Dieser Parameter kombiniert mit '--data-urlencode" sort = sterne "--data-urlencode" order = desc "' gibt Ihnen die meisten markierten Repos aus die letzte Woche. Sie könnten das auf weniger als eine Woche filtern, wenn Sie möchten, aber das ist ein guter Anfang! – mbb
Das stimmt nicht. Derselbe Link, auf den Sie hingewiesen haben, besagt, dass dieser Code "Die heißesten Repositories der letzten Woche" finden soll. Die GitHub-Trendseite enthält die meist markierten Elemente in einem bestimmten Zeitraum. Es gibt keine Möglichkeit, diese Informationen mit der aktuellen API-Version zu erhalten. Die Lösung, die ich an anderen Orten sah, war, HTML-Seiten zu analysieren. –