Ich versuche, alle Kommentare von den Top-Posts eines Subreddit zu drucken, so dass mein Bot sie analysieren kann. Ich hatte es früher am Tag laufen, aber ich habe es jetzt versucht und ich bin auf einen Fehler gestoßen.In praw versuche ich den Kommentarkörper zu drucken, aber was ist, wenn ich auf einen leeren Kommentar stoße?
Hier ist mein Code:
r = praw.Reddit('Comment crawler v1.0 by /u/...')
r.login('username', 'password')
subreddit=r.get_subreddit('subreddit')
post_limit = 25
subreddit_posts = subreddit.get_hot(limit=post_limit)
subids = set()
for submission in subreddit_posts:
subids.add(submission.id)
subid = list(subids)
i=0
while i < post_limit:
submission = r.get_submission(submission_id=subid[i])
flat_comments = praw.helpers.flatten_tree(submission.comments)
with open('alreadydone.txt', 'r') as f:
already_done = [line.strip() for line in f]
f.close()
for comment in flat_comments:
if "Cricketbot, give me Australian news" in **comment.body** and comment.id not in already_done:
info = feedparser.parse(Australia) #Australia gives a link to an RSS feed.
Der spielte Abschnitt ist, wo ich das Problem habe. Ich versuche, Kommentare durchzusehen, in denen "Cricketbot, gib mir australische Nachrichten" geschrieben ist. Wenn der Text des Kommentars nicht vorhanden ist, d. H. Der Kommentar leer ist, gibt der Code leider einen Attributfehler zurück und sagt, dass der Kommentar kein Attribut "body" hat.
Wie kommt man um dieses Problem herum?
Um den gesamten Code zu sehen, besuchen Sie bitte die GitHub page for the bot.
Vielen Dank! Entschuldigungen, es war in der Tat "AttributeError: '' hat kein Attribut 'body''. Ich habe es in Versuch und Ausnahme eingewickelt und das hat funktioniert, aber der andere funktioniert nicht (lesen Sie: "Ich verstehe nicht, wie man es benutzt"). Es scheint, dass es überprüft, um zu sehen, ob der Körper existiert, aber dann nach dem Befehl pass, nur den Code läuft sowieso. –
sunny
Ups, es sollte ein Fortfahren sein, kein Pass in den anderen Beispielen. Fest. – bboe
Das macht jetzt Sinn.Vielen Dank noch mal! – sunny