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ąć?
@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ą.
@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ć