Chcę uzyskać listę repozytoriów Github, takich jak ten - https://github.com/trending?l=java , ale nie znalazłem żadnych podobnych metod płatności pod numerem https://developer.github.com/v3/, w jaki sposób mogę uzyskać odpowiedź JSON z popularnymi repo?Jak zdobyć listę popularnych repozytoriów github przez github api?
Odpowiedz
Wygląda na to, że GitHub używa interfejsu API do napisania strony trendującej i nie wyświetla jej ponownie jako konkretnego interfejsu API. Musisz użyć Repository Search API. Mam następnie na examples on this page, która mogłaby rozwiązać swoje potrzeby przez:
# 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'`"
a następnie przejść stamtąd. Można także swoje życie o wiele łatwiejsze, instalując jq
na OS X lub innych platform, aby uzyskać ładniejszą wyjście:
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"
}
Obecnie nie ma GitHub API do listy trendów repozytoriów dostać. Jedynym sposobem jest przemieszczenie elementów ze strony internetowej za pomocą selektorów. Można otworzyć https://github.com/trending w Chrome i uruchom następujący kod w konsoli DevTools:
wyjściowy$$('ol.repo-list li h3').forEach(el => console.log(el.innerText));
Ta wola listę trendów repozytoriów nazwy. Aby uczynić go bardziej zautomatyzowanym, rozważ Headles Chrome lub inne podobne narzędzia.
Istnieje również kilka projektów, które już rozwiązały to zadanie w różnych językach. Na przykład:
- 1. Jak odzyskać listę wszystkich repozytoriów github danej osoby?
- 2. Github API: Jak zdobyć wszystkie repozytoria napisane w danym języku?
- 3. Wiele prywatnych repozytoriów NPM github na serwerze
- 4. GitHub dla Windows zapomniałem wszystkich repozytoriów
- 5. Zalety GitHub ponad Bitbucket dla Git repozytoriów
- 6. Buforowanie wywołań API Github API
- 7. GitHub API problem - wystawianie oznaczone gwiazdką repo
- 8. Jak wyświetlić prywatne repozytoria organizacji za pomocą interfejsu API GitHub?
- 9. github api uzyskać liczbę żądań pobrania
- 10. Github Zatwierdzanie wiadomości Github "@"
- 11. Jak mogę dodać odznaki/tarcze do repozytoriów github?
- 12. Zaktualizuj wiki projektu GitHub za pomocą interfejsu API GitHub
- 13. Czy to możliwe, aby uzyskać GitHub zawartości Wiki github api
- 14. PHP-GitHub-Api Authentication Issue
- 15. jak zdobyć listę obserwujących z konta facebook przez api wykresu?
- 16. Jak rozwidlić repozytorium GitHub na GitHub?
- 17. Czy mogę zdobyć klejnoty RubyForge, Github lub Gemcutter?
- 18. GitHub - lista zatwierdza autor:
- 19. Otrzymywanie pojedynczych plików Github
- 20. Większość „popularne” repo Python na GitHub
- 21. Czy można śledzić widoki i klony moich repozytoriów github?
- 22. Intellij IDEA: Nie można uzyskać listy repozytoriów GitHub
- 23. Uzyskaj token za pomocą Github API
- 24. Przenieś "autorytatywne" repozytorium git z Github na prywatne github
- 25. Rozwiązywanie konfliktów GITHUB
- 26. Github ograniczający dostęp
- 27. Github API i Access-Control-Allow-Origin
- 28. Jak klonować z GitHub
- 29. GitHub: Enterprise po otrzymaniu haka
- 30. Odpowiednik GitHub GraphQL dla zawartości API
ładne, ale jeśli się nie mylę, zażądać za pomocą parametru "q = stworzony:>' date" powróci repozytoria utworzone później niż 7 dni temu. Myślę, że repozytorium trendów jest tym, które ma najwięcej gwiazdek, pomimo daty utworzenia – Lester
Ten parametr w połączeniu z '--data-urlencode" sort = stars "--data-urlencode" order = desc "' daje najbardziej oznaczone repo z ostatni tydzień. Możesz filtrować to do mniej niż tygodnia, jeśli chcesz, ale to dobry początek! – mbb
To nie prawda. Ten sam link, który wskazałeś, mówi, że ten kod to "Znajdź najgorętsze repozytoria utworzone w zeszłym tygodniu". Strona trendów GitHub zawiera informacje o najczęstszych elementach w zakresie czasu. Nie ma sposobu, aby uzyskać te informacje z aktualną wersją API. Rozwiązaniem, które zobaczyłem w innych miejscach, było przeanalizowanie kodu HTML strony. –