ツイッターbotを使い、pythonの勉強をしています。
デベロッパーアカウントを取得し、MacBookにpythonの環境も構築して、実際にフォローやリツイートができるところまでできました。
そこで早速定期処理をやってみようとscheduleライブラリを使って見たのですがうまくいきません。
以下定期処理のプログラムです
import twitter_autoFavorite import schedule,time,datetime def job(): now=datetime.datetime.now() twitter_autoFavorite.main() print("<<DONE>>",now.strftime('%Y-%m-%d %H:%M:%S')) schedule.every(1/6).minutes.do(job) while True: schedule.run_pending() time.sleep(1)
以下エラー文です。
Traceback (most recent call last): File "Autoprogram.py", line 12, in <module> schedule.run_pending() File "/Users/me/.pyenv/versions/3.7.3/lib/python3.7/site-packages/schedule/__init__.py", line 563, in run_pending default_scheduler.run_pending() File "/Users/me/.pyenv/versions/3.7.3/lib/python3.7/site-packages/schedule/__init__.py", line 94, in run_pending self._run_job(job) File "/Users/me/.pyenv/versions/3.7.3/lib/python3.7/site-packages/schedule/__init__.py", line 147, in _run_job ret = job.run() File "/Users/me/.pyenv/versions/3.7.3/lib/python3.7/site-packages/schedule/__init__.py", line 466, in run ret = self.job_func() File "Autoprogram.py", line 6, in job twitter_autoFavorite.main() AttributeError: module 'twitter_autoFavorite' has no attribute 'main'
以下twitter_autoFavorite.pyのプログラムです。
# Tweepyライブラリをインポート import tweepy # 各種キーをセット CONSUMER_KEY = 'xxx' CONSUMER_SECRET = 'xxx' ACCESS_TOKEN = 'xxx' ACCESS_SECRET = 'xxx' auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET) #APIインスタンスを作成 api = tweepy.API(auth) q = "python" #ここに検索キーワードを設定 count = 5 search_results = api.search(q=q, count=count) def main(): for result in search_results: username = result.user._json["screen_name"] user_id = result.id #ツイートのstatusオブジェクトから、ツイートidを取得 print(user_id) user = result.user.name #ツイートのstatusオブジェクトから、userオブジェクトを取り出し、名前を取得する print(user) tweet = result.text print(tweet) time = result.created_at print(time) try: api.create_favorite(user_id) #ファヴォる print(user) print("をライクしました") except: print("もうすでにふぁぼしてますわ") try: api.create_friendship(username)#user_id print(user) print("をフォローしました") except: print("もうすでにフォローしてますわ") try: api.retweet(user_id) #RT print(user_id) print(tweet) print("をRTしました") except: print("もうすでにRTしてますわ") print("##################")
また、定期処理中は他のプログラムは実行出来ないのでしょうか?
色々初心者で申し訳ないですがよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー