pythonのtwintを使ってtwitterをスクレイピングするプログラムを実行しています。
1000tweetずつスクレイピングして、jsonファイルとして出力させる関数を5つfor文で回す仕組みです。
1つの関数の処理が終わるのを待たずsleep(5)で次の関数を走らせたいので、今回threadingを採用してみました。
途中まではうまくいくんですが、最初の方でシャットダウンしてしまいます。
ご教示お願いいたします。
python
1import twint 2from datetime import datetime 3import shutil 4import time 5import threading 6 7def scraping(n): 8 9 def gettweet(n): 10 nowdate = datetime.now() 11 strdate = "{0:%Y-%m-%d %H:%M:%S}".format(nowdate) 12 c = twint.Config() 13 c.Limit = 1000 14 c.Search = 'lang:ja' 15 c.Store_json = True 16 namedate = "{0:%Y%m%d%H%M%S}".format(nowdate) 17 strfilename = 'result' + namedate + '_' + str(n) + '.json' 18 c.Output = strfilename 19 twint.run.Search(c) 20 return strfilename 21 22 while True: 23 filename = gettweet(n) 24 shutil.move(filename, 'temp/') 25 26for i in range(1, 6): 27 sc = threading.Thread(target=scraping, args=(i,)) 28 sc.start() 29 time.sleep(5) 30
エラー内容
RuntimeError: cannot schedule new futures after shutdown
やりたいこと
scraping(1)→無限ループ
処理待たずにscraping(2)→無限ループ
処理待たずにscraping(3)→無限ループ
処理待たずにscraping(4)→無限ループ
処理待たずにscraping(5)→無限ループ
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/15 05:50