这是我第一次开发网站,我遇到了一些问题。我有一些python代码,用beautifulsoup4抓取一些数据,并用flask在我的网站上显示数字。但是,我发现我的网站根本不会自动更新数值,而是只有在我手动让主机重载的时候才会更新。
我怎样才能使我的python脚本在每次访问者访问我的网站时都能 "重刮",或者只是每5分钟左右更新一次?任何帮助将非常感激! 强调文字主机- Pythonanywhere
这是我目前的后台python代码。
import bs4 as bs
import urllib.request
from flask import Flask, render_template
app = Flask(__name__)
link = urllib.request.urlopen('https://www.health.pa.gov/topics/disease/coronavirus/Pages/Cases.aspx')
soup = bs.BeautifulSoup(link, 'lxml')
body = soup.find('body') # get the body so you can do soup.find_all() inside it
tables = soup.find_all('table')
for table in tables:
table_rows = table.find_all('tr')
for tr in table_rows:
td = tr.find_all('td')
row = [i.text for i in td]
if row.count('Bucks') > 0:
print(row[1])
# Bucksnum shows the amount of cases in bucks county,
bucksnum = str(row[1])
data = bucksnum
# this is the part that connects the flask file to the html file
@app.route("/")
def home():
return render_template("template.html", data=data)
@app.route("/")
def index():
return bucksnum
if __name__ == '__main__':
app.run(host='0.0.0.0')
index()
你需要使用调度器,检查这个 纫 讨论类似问题的,你可以用它来调用某个函数,每隔一段时间更新一次数据。
你的应用程序只在启动时收集一次数据。如果你想让它在每次有人访问页面时都抓取数据,你可以将你抓取和处理表格数据的代码放入相关的视图函数中,由 @app.route('/route')
封装器,每次访问时都会运行该函数。