requests-html und error code 429

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ernie1412
User
Beiträge: 161
Registriert: Freitag 10. Januar 2020, 20:38

wenn ich eine Side "scrape" kommt nach kurzer zeit:
429 Too Many Requests
wie kann ich das umgehen ?
ich benutze requets-html, weil ich damit auf einfache art async die daten holen kann.

Code: Alles auswählen

session = HTMLSession()
        try:
            r = session.get(url_complete,headers=HEADERS,timeout = 60)
            r.raise_for_status()
        except Exception as e:
            if r.status_code == 429:
und dann ?
weiss da einer wie man das umgeht ?
hab da was von time.sleep(int(r.headers["Retry-After"])) gefunden, allerdings bei "requests" und nicht requests-html
hab dazu niochts in der DOC gefunden
oder muss ich das alles in request und asyncio umwandeln ?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Es seltener machen. Offensichtlich wollen die
Nicht, dass du das tust. Und wenn sie es merken, limitieren sie dich. Also darfst du diesen Schutzmechanismus nicht triggern, durch langsamere Abfragen.
Ernie1412
User
Beiträge: 161
Registriert: Freitag 10. Januar 2020, 20:38

wie kriege ich raus wieviel sekunden ich warten muss ? und wieviele anfragen erlaubt sind ?
Gibts dazu ein Hilfsmechanismus oder immer wieder probieren ?
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Ernie1412: Du kannst schauen ob die Website selbst darüber irgendwo Informationen hat. Und ob der "Retry-After"-Header bei dem 429 steht, oder generell dort mal die Header und den Body der Antwort anschauen ob Hinweise enthalten sind. Ansonsten musst Du raten. Und weiterhin damit rechnen, dass sich das Verhalten auch ändern/dynamisch angepasst werden kann. Also auch beim immer wieder probieren vorsichtig sein, denn wenn Du mehrfach in den 429er läufst kann der Server auch auf die Idee kommen Anfragen von Deiner IP komplett zu blockieren.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten