Przeglądam pobieżnie dokumentacje hejto api, ale nie widzę opcji pobrania wszystkich komentarzy i postów jednego użytkownika. Ktoś może podpowiedzieć jak to ogarnąć?
@koszotorobur kolega ma pytanie
@redve - się nie da tak łatwo - trzeba kombinować - to Hejto API jest nie tylko toporne ale i źle udokumentowane - na dodatek od czasu do czasu po cichu coś w nim zmieniają (i to wcale nie na lepsze)
Jak siądę przy kompie to może będę miał gdzieś przykład w Pythonie jak pobrać wszystkie wpisy.
@koszotorobur a komentarze też sie tak masz?
@redve a co? Klapsztange planujesz?
@CzosnkowySmok nieee, chce znaleść w historii jednego użytkownika pewne wypowiedzi ( ͡° ͜ʖ ͡°)
mógłbym manualnie ale nie chce mi sie ręcznie 1000 komentarzy sprawdzać
@redve uuu... Brzmi jak afera
@redve Patrzcie no ludzie jakie te programisty teraz wygodne. Nic tylko po API by się komunikowały a na stary, dobry web scraping nawet nie spojrzą.
@lipa13 xD
@Catharsis Piękne xD
@redve - BTW: a próbowałeś mojej Szukaczki Hejto: https://hejto-szukaczka.vercel.app/?
@redve - Masz tu kod Pythona do https://docs.hejto.pl/#tag/Posts/operation/get_posts :
import requests
user = "koszotorobur"
client = "" # Get it from https://developer.hejto.pl/
secret = "" # Get it from https://developer.hejto.pl/
url = " https://auth.hejto.pl/token"
body = {
"client_id": client,
"client_secret": secret,
"grant_type": "client_credentials",
}
headers = {"Content-type": "application/json"}
r = requests.post(url, json=body, headers=headers)
token = r.json().get("access_token")
for page in range(1_000_000_000):
url = " https://api.hejto.pl/posts"
headers = {"Authorization": f"Bearer {token}"}
params = {
"period": "all",
"page": page + 1,
"limit": 50, # 50 is the max
"orderBy": "p.createdAt", # p.createdAt|p.numLikes|p.numComments|p.hot|p.hotness|rand|p.promoted
"orderDir": "desc", # asc
"users[]": user,
}
r = requests.get(url, params=params, headers=headers)
items = r.json().get("_embedded").get("items")
if items:
for item in items:
print(item.get("content"))
else:
break
Z tego co pamiętam Hajto API zwraca maksymalnie 50 stron gdzie może być maksymalnie 50 wpisów na jednej stronie - co daje maksymalnie 2500 wpisów, które można wyciągać na raz.... no chyba, że później posortujesz w drugą stronę to na dwa razy po 2500 wpisów wyciągniesz maksymalnie 5000).
Zaloguj się aby komentować