[PYTHON] Über tweepy Fehlerbehandlung

Einführung

Wenn ich auf die Twitter-API klicke, verwende ich tweepy, weil es einfach ist, Die Fehlerbehandlung ist unerwartet schwierig.

Ich benutze es ziemlich oft, also werde ich es als Memo hinterlassen.

Über die Fehlerbehandlung von Tweepy

Wenn Sie viele Tweets in einer Schleife erhalten

--Warten Sie für das Ratenlimit 15 Minuten und drücken Sie erneut dieselbe API.

Ich möchte nur diesen Unterschied verzweigen.

Im Grunde mache ich folgendes: ↓

import datetime
import time
import tweepy

while True:
		try:
			data = api.search(...)
			break
		except tweepy.TweepError as e:
			print(e)
			if e.reason == "[{'message': 'Rate limit exceeded', 'code': 88}]":
				print('Fehler: 15 Minuten warten')
                #Zeigt die Zeit an, zu der die Verarbeitung gestoppt wurde, obwohl sie 15 Minuten gewartet hat.
				print(datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
				time.sleep(60 * 15)
			else:
				break

Nachtrag

Es wäre schön, wenn diese Art der Verarbeitung ausreichen würde, Es scheint, dass es eine Möglichkeit gab, es offiziell zu spezifizieren. http://docs.tweepy.org/en/latest/api.html Ich habe es dir im Kommentarbereich gesagt. Vielen Dank.

Stolperpunkt

** e ** war verwirrend.

print(e)

[{'message': 'Rate limit exceeded', 'code': 88}]

Aus dem Ergebnis geht hervor, dass es auf den ersten Blick wie ein assoziatives Array aussieht.


** Aber es war nicht. ** **.

print(e.reason)
print(str(e.reason))

[{'message': 'Rate limit exceeded', 'code': 88}]
<class 'str'>

e.reason war eine Schnur! Das heißt, die Zeichenfolge [{'message': 'Ratenlimit überschritten', 'code': 88}]!


Deshalb

if e.reason == "[{'message': 'Rate limit exceeded', 'code': 88}]":
    ...

Es verarbeitet wie.

Es ist mir eine Freude, Ihnen zu helfen.

Recommended Posts

Über tweepy Fehlerbehandlung
Informationen zu FastAPI ~ Endpoint-Fehlerbehandlung ~
Fehlerbehandlung im Hauptrahmen
Python-Fehlerbehandlung
SikuliX-Fehlerbehandlung
django.db.migrations.exceptions.InconsistentMigrationHistory Fehlerbehandlung
Python, über die Ausnahmebehandlung
Fehlerbehandlung in PythonBox
GraphQL (gqlgen) Fehlerbehandlung
Um Fehlerbehandlung von Feedparser
[Fehlergegenmaßnahmen] Fehlerbehandlung bei der Installation von Django-Heroku
Reaktion auf Fehler bei der Installation von mecab-python
Datenverarbeitung 3 (Entwicklung) Informationen zum Datenformat
Memorandum zur Fehlerbehandlung bei PyCUDA-Builds
Informationen zum Umgang mit statischen Django-Dateien
Fehler geteilt durch 0 Behandlung von ZeroDivisionError
Fehlerbehandlung beim Aktualisieren der Fischschale
Informationen zum Importfehler von PyQt5.QtWidgets (Anaconda)
Fehlerbehandlung während der Django-Migration 'DIRS': [BASE_DIR / 'Templates']