Desidero ottenere l'elenco dei repository di tendenza di github come questo - https://github.com/trending?l=java ma non ho trovato alcun metodo di richiesta simile a https://developer.github.com/v3/, come posso ottenere responce Json con repos di tendenza?Come ottenere l'elenco dei repository github di tendenza tramite github api?
risposta
GitHub sembra utilizzare le API per scrivere la pagina di tendenza e non presentarla come una particolare API. Devi usare lo Repository Search API. Ho seguito il examples on this page, che potrebbe risolvere tue esigenze:
# 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'`"
E poi passare da lì. È inoltre possibile rendere la vita molto più facile con l'installazione di jq
su OS X o altre piattaforme per ottenere l'output più bella:
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"
}
Attualmente non v'è alcun GitHub API per ottenere l'elenco dei repository trend. L'unico modo è quello di eseguire la scansione degli elementi dalla pagina Web tramite i selettori. È possibile aprire https://github.com/trending in Chrome ed eseguire il codice seguente nella console devtools:
uscita$$('ol.repo-list li h3').forEach(el => console.log(el.innerText));
Questa volontà l'elenco dei nomi trend repository. Per renderlo più automatico, considera Headles Chrome o altri strumenti simili.
Inoltre ci sono diversi progetti che hanno già risolto questo compito in diverse lingue. Per esempio:
- 1. GitHub API popolari repository
- 2. Come ottenere un file tramite le API GitHub
- 3. E 'possibile ottenere github contenuti wiki di github api
- 4. Come cercare codice in GitHub con GitHub API?
- 5. Ottenere tutti gli utenti GitHub attraverso github-api
- 6. Come rinominare un repository GitHub?
- 7. Clone repository in GitHub
- 8. Problemi di GitHub come repository separato?
- 9. spingendo indietro al repository github
- 10. Lingua personalizzata nel repository github
- 11. Rifletti automaticamente un repository GitHub
- 12. Come posso creare repository nidificati in GitHub?
- 13. Autenticazione Github: come utilizzare Github come repository Maven quando il repository è privato
- 14. Crittografia chiave API per Github?
- 15. Ottenere Github collaboratori singoli file
- 16. Come creare una cartella nel repository github?
- 17. API GitHub - come confrontare 2 commit
- 18. Come elencare gli archivi privati dell'organizzazione tramite l'API GitHub?
- 19. Aggiornare un wiki del progetto GitHub tramite l'API GitHub
- 20. GitHub: come aggiungere Gist al repository?
- 21. Come rimuovere i file dal repository GitHub?
- 22. Come ottenere solo un file da un repository Github PROTECTED
- 23. Ricerca in più repository Github
- 24. Visualize repository git su GitHub
- 25. github invita gli utenti non-github al repository privato
- 26. Come ottenere pagine dopo le 10 con Github API v3?
- 27. Tagging di un progetto GitHub tramite Jenkins
- 28. GitHub Pages for Private Repository
- 29. Impossibile creare repository su github
- 30. Creare un problema con l'immagine tramite GitHub API
bello, ma se non mi sbaglio, richiedere con il parametro "q = creato:>' date" tornerà repository che è stato creato più tardi poi 7 giorni fa. Penso che il deposito di tendenza sia quello che ha ottenuto la maggior parte delle stelle, nonostante la data di creazione – Lester
Questo parametro combinato con '--data-urlencode" sort = stars "--data-urlencode" order = desc "' fornisce i repository più speciali da La settimana scorsa. Puoi filtrarlo a meno di una settimana, se vuoi, ma è un buon inizio! – mbb
Non è vero. Lo stesso link che hai indicato dice che questo codice è "Trova i repository più caldi creati nell'ultima settimana". La pagina di tendenza di GitHub riguarda gli elementi più speciali in un intervallo di tempo. Non c'è modo di ottenere queste informazioni con la versione corrente dell'API. La soluzione che ho visto in altri posti è stata quella di analizzare la pagina HTML di tendenza. –