質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

1407閲覧

毎日同じ時刻に同じ処理を実行できるようにしたい

TomF

総合スコア4

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2020/10/26 00:19

編集2020/10/26 09:05

スクレイピングを毎日同じ時刻に実行し、LINEで通知できるようにしたいです。
定時の処理、スクレイピング、LINE通知、それぞれの処理は行うことはできました。
しかし組み合わせると上手く実行できずエラーを吐いてしまいます。
LINE通知無しの組み合わせすら上手くいきませんでした。

Windows10です。
python初学者なので分かりやすく解説いただけると幸いです。
よろしくお願いいたします。

###定時処理

python

1import datetime 2import schedule 3import time 4 5def job(): 6 print(datetime.datetime.now()) 7 print("I'm working...") 8 9schedule.every().day.at("14:25").do(job) 10 11while True: 12 schedule.run_pending() 13 time.sleep(60)

###スクレイピング

python

1from selenium import webdriver 2import chromedriver_binary 3from selenium.webdriver.common.by import By 4from selenium.webdriver.common.keys import Keys 5import time 6 7 8driver = webdriver.Chrome() 9driver.get('http://○○.jp/'); 10 11time.sleep(3) 12driver.find_element_by_css_selector("a.buttonMypagelogin").click() 13time.sleep(3) 14 15driver.find_element_by_xpath('//*[@id="loginInner_u"]').send_keys("○○○○") 16driver.find_element_by_xpath('//*[@id="loginInner_p"]').send_keys("○○○○") 17driver.find_element_by_css_selector("input.loginButton").click() 18time.sleep(3) 19driver.find_element_by_css_selector("span.balancedisplay_list_label").click() 20time.sleep(3) 21 22driver.get('http://○○○○'); 23driver.find_element_by_xpath('//*[@id="Input"]').send_keys("○○") 24driver.find_element_by_css_selector("span.confirm").click() 25time.sleep(3)

###LINE通知

python

1import requests 2 3def main(): 4 send_line_notify('Success') 5 6def send_line_notify(notification_message): 7 """ 8 LINEに通知する 9 """ 10 line_notify_token = '○○○○' 11 line_notify_api = 'https://notify-api.line.me/api/notify' 12 headers = {'Authorization': f'Bearer {line_notify_token}'} 13 data = {'message': f'message: {notification_message}'} 14 requests.post(line_notify_api, headers = headers, data = data) 15 16if __name__ == "__main__": 17 main()

###Error

python

1import datetime 2import schedule 3import time 4 5def job(): 6 import RSd.py 7 print("実行します") 8 9schedule.every().day.at("14:53").do(job) 10 11while True: 12 schedule.run_pending() 13 time.sleep(1) 14 15 16 17ModuleNotFoundError Traceback (most recent call last) 18<ipython-input-2-6fab38240cfc> in <module> 19 12 20 13 while True: 21---> 14 schedule.run_pending() 22 15 time.sleep(1) 23 16 24 25~\anaconda3\lib\site-packages\schedule\__init__.py in run_pending() 26 561 :data:`default scheduler instance <default_scheduler>`. 27 562 """ 28--> 563 default_scheduler.run_pending() 29 564 30 565 31 32~\anaconda3\lib\site-packages\schedule\__init__.py in run_pending(self) 33 92 runnable_jobs = (job for job in self.jobs if job.should_run) 34 93 for job in sorted(runnable_jobs): 35---> 94 self._run_job(job) 36 95 37 96 def run_all(self, delay_seconds=0): 38 39~\anaconda3\lib\site-packages\schedule\__init__.py in _run_job(self, job) 40 145 41 146 def _run_job(self, job): 42--> 147 ret = job.run() 43 148 if isinstance(ret, CancelJob) or ret is CancelJob: 44 149 self.cancel_job(job) 45 46~\anaconda3\lib\site-packages\schedule\__init__.py in run(self) 47 464 """ 48 465 logger.info('Running job %s', self) 49--> 466 ret = self.job_func() 50 467 self.last_run = datetime.datetime.now() 51 468 self._schedule_next_run() 52 53<ipython-input-1-a182ebbc26f0> in work() 54 3 55 4 def work(): 56----> 5 import RSd.py 57 58ModuleNotFoundError: No module named 'RSd' 59

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/10/26 00:24

エラーが出るならエラーメッセージを提示しましょう
TomF

2020/10/26 09:09

お待たせしました。 残っていたエラーを掲載してみました。 jupyter noteで記述してます。 RSd.pyが実行ファイル名です。 よろしくお願いいたします。
guest

回答3

0

自己解決

importに拡張子を付けていたのが原因だったみたいです。

投稿2020/10/26 09:48

TomF

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ModuleNotFoundError: No module named 'RSd'

RSdというモジュールがない、とおっしゃってますね。
あるのを確認しましょう

投稿2020/10/26 09:30

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

タスクスケジューラとかで管理するのはどうでしょうか?

投稿2020/10/26 00:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TomF

2020/10/26 01:16

申し訳ありません。初学者と記載した通り、学習の為にやっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問