Sto provando a stampare tutti i commenti dai primi post di un subreddit in modo che il mio bot possa analizzarli. L'ho fatto funzionare in precedenza, ma ho provato a eseguirlo ora e ho riscontrato un errore.In praw, sto provando a stampare il corpo del commento, ma cosa succede se incontro un commento vuoto?
Ecco il mio codice:
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.
sezione Speciali è dove sto avendo il problema. Sto cercando di guardare attraverso i commenti che hanno scritto "Cricketbot, dammi notizie australiane". Sfortunatamente, se il corpo del commento non è presente, cioè il commento è vuoto, il codice restituisce un errore di attributo e dice che il commento non ha attributo 'corpo'.
Come si aggira questo problema?
Per visualizzare l'intero codice, visitare il numero GitHub page for the bot.
Grazie mille! Scuse pure, era davvero "AttributeError:" "non ha attributo 'body'. L'ho avvolto nel tentativo, tranne che ha funzionato, ma l'altro non funziona (leggi "Non capisco come usarlo"). Sembra che controlli se il corpo esiste, ma dopo il comando pass, esegue comunque il codice. –
sunny
Oops, dovrebbe essere un continuo, non un passaggio negli altri esempi. Fisso. – bboe
Questo ha senso ora.Grazie ancora! – sunny