ΠΡΠΈΠ²Π΅Ρ,
Π― ΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠΎΠΉ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ, Π½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠ΅ Π² PaginatedList, Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
Traceback (most recent call last):
File "github-crawler.py", line 6, in <module>
print(i, repo.archive_url)
File "/home/user/.local/lib/python3.6/site-packages/github/Repository.py", line 2407, in get_topics
self.url + "/topics",
File "/home/user/.local/lib/python3.6/site-packages/github/Repository.py", line 745, in url
self._completeIfNotSet(self._url)
File "/home/user/.local/lib/python3.6/site-packages/github/GithubObject.py", line 259, in _completeIfNotSet
self._completeIfNeeded()
File "/home/user/.local/lib/python3.6/site-packages/github/GithubObject.py", line 263, in _completeIfNeeded
self.__complete()
File "/home/user/.local/lib/python3.6/site-packages/github/GithubObject.py", line 268, in __complete
self._url.value
File "/home/user/.local/lib/python3.6/site-packages/github/Requester.py", line 262, in requestJsonAndCheck
return self.__check(*self.requestJson(verb, url, parameters, headers, input, self.__customConnection(url)))
File "/home/user/.local/lib/python3.6/site-packages/github/Requester.py", line 278, in __customConnection
if not url.startswith("/"):
AttributeError: 'NoneType' object has no attribute 'startswith'
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
from github import Github
g = Github(per_page=300)
i = 1
for repo in g.search_topics('security'):
print(i, repo.archive_url)
i += 1
ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π΄Π΅ΡΡ: https://repl.it/repls/LawngreenPlushBetaversion
Π‘ΡΠ΅Π΄Π°:
Linux ubuntu 4.15.0-36-ΠΎΠ±ΡΠΈΠΉ x86_64 GNU / Linux
Python 3.6.6
PyGithub 1.43.2
ΠΡΠ±Π°Ρ ΠΏΠΎΠΌΠΎΡΡ Ρ ΡΡΠΈΠΌ?
Π ΡΠΏΠ°ΡΠΈΠ±ΠΎ
ΠΠΎΠ·ΠΆΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Ρ: p
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ . @jacquerie
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ . @jacquerie
Π₯ΠΌ? ΠΠ΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ΅Π³ΠΎ-ΡΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ...
ΠΡΠΎΡΡΠΎ Π²Π·Π³Π»ΡΠ½ΡΠ² Π½Π° ΠΊΠΎΠ΄. ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ search_topics Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·Π±ΠΈΡΡΠΉ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² GitHub, Π½ΠΎ API, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
ΠΠ°, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° API / ΠΏΠΎΠΈΡΠΊ / ΡΠ΅ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ, Π° Π½Π΅ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π², ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ
ΡΡΠΎΠΉ ΡΠ΅ΠΌΠΎΠΉ (ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ?).
Π ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ API, ΠΈ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π» Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
ΠΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π² PyGithub ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
PR Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
PR Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ