簡體   English   中英

從Twitter(使用Tweepy和Python)流式推文,並存儲在SQLite數據庫中,直到處理了N個推文為止

[英]Stream tweets from Twitter (With Tweepy and Python) and store in SQLite database until N tweets has been processed

我試圖在SQLite數據庫表(“情感”)中存儲N條推文(通過關鍵字“特朗普”過濾)。 為此,我編寫了一個函數“ count_rows”,該函數返回存儲在該表中的整數行(每行對應一條tweet)。 使用這個整數作為達到N條推文的臨界點,我試圖在while循環內流推文(請參見下文):

N = 100

def count_rows():
    count_SQL = """SELECT COUNT(*) FROM sentiment"""
    c.execute(count_SQL)
    return c.fetchall()[0][0]

num_rows = count_rows()  # Starts at value: zero
while num_rows <= N:
    try:
        auth = OAuthHandler(ckey, csecret)
        auth.set_access_token(atoken, asecret)
        twitterStream = Stream(auth, listener())
        twitterStream.filter(track=["Trump"])
        # num_rows = count_rows()
    except Exception as e:
        print(str(e))
        time.sleep(5)
    num_rows = count_rows()

挑戰在於,流永遠持續下去,而while循環是無限的。 我究竟做錯了什么? 我是否以錯誤的方式使用count_rows()? (函數count_rows()本身可以正常工作,因此該錯誤必須在我認為的while循環邏輯內)。

[ 自我注意:記得閱讀帖子中的所有單詞 :]

編輯:

tweepy文檔:

除非關閉連接,否則流[不會]終止,

計數測試不應該監聽器內部嗎? 聽起來對Stream的調用不會返回到while函數。


這個num_rows = count_rows()是否連續將num_rows重置為0? 在發布的代碼中沒有跡象表明sentiments中的COUNT(*)發生了變化。 這些推文是否已插入sentiment表?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM