次のプログラムが実行されています。すべてのプログラムがここに表示されているわけではありません。関連する部分のみがここに表示されます。ポイントは、定期的にアプリを実行して、ウェブサイトから新しいデータをクロールすることです。私はthread
とtimer
を使用しましたが失敗しました。ここで定期的にアプリケーションを実行する
import time, threading
# some parts of the program are not shown here for their irrelevancy.
app = Flask(__name__)
@app.route('/')
@app.route('/weather')
def weather() -> 'html':
place = "논현동 air quality information"
# bringing in the crawled data
(match_web, match_db, update) = run_crawl()
air_pm = str(match_web[0])
ozone = str(match_web[1])
total_air = str(match_web[2])
update_time = update
return render_template('weather.html', place = place, air_pm = air_pm, ozone
= ozone, total_air = total_air, update_time = update)
if __name__ == '__main__':
threading.Timer(100, app.run(debug=True, host='0.0.0.0')).start()
は、実行
c:\yu_weather\flask-weather-yu>py -3 weather_crawling_rev7.py
* Restarting with stat
* Debugger is active!
* Debugger PIN: 224-483-614
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [23/May/2017 10:24:47] "GET/HTTP/1.1" 200 -
127.0.0.1 - - [23/May/2017 10:24:47] "GET /favicon.ico HTTP/1.1" 404 -
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Python36-32\lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "C:\Python36-32\lib\threading.py", line 1182, in run
self.function(*self.args, **self.kwargs)
TypeError: 'NoneType' object is not callable
Exception ignored in: <module 'threading' from 'C:\\Python36-
32\\lib\\threading.py'>
Traceback (most recent call last):
File "C:\Python36-32\lib\threading.py", line 1294, in _shutdown
t.join()
File "C:\Python36-32\lib\threading.py", line 1056, in join
self._wait_for_tstate_lock()
File "C:\Python36-32\lib\threading.py", line 1072, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
KeyboardInterrupt
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python36-32\lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "C:\Python36-32\lib\threading.py", line 1182, in run
self.function(*self.args, **self.kwargs)
TypeError: 'NoneType' object is not callable
マイナーな書式設定を改善しました。 –