如何在 python 脚本中重新加载 URL 数据,或每小时重新运行脚本?

问题描述 投票:0回答:1

我正在从内容经常更改的 URL 中抓取数据,并在 Flask 中提供页面。 每小时重新抓取数据并将其发送到 Flask 的最佳策略是什么? 注意:在 Windows cmd 的虚拟环境中运行它。

  • 我应该使用 APSchedule 吗?
  • Windows 任务计划程序? (如果是这样,我将如何杀死当前正在运行的脚本?)
  • 或者有什么方法可以定期重新加载和更新脚本内的数据? (如果是的话,您能在下面的脚本中展示具体的实现吗?我正在努力学习 python。)

我尝试了一些使用 APSchedule 的示例,但没有运气。 代码如下

#News feed test for Xibo Signage
from flask import Flask, render_template
from markupsafe import Markup
app=Flask(__name__) 
from urllib.request import Request, urlopen
from bs4 import BeautifulSoup
import requests
from datetime import datetime

# datetime object containing current date and time
# dd/mm/YY H:M:S
now = datetime.now()
current_time = now.strftime("%d/%m/%Y %H:%M:%S")

url = "https://news.clemson.edu/tag/extension/"
soup = BeautifulSoup(requests.get(url, headers={'user-agent':'Mozilla/5.0'}).text)
picture=[]
for e in soup.select('article img.lazyload'):
    sorce = (e.get('data-src'))
    picture.append(sorce)


title=[]
for e in soup.select('article header'): 
    etitle =  (e.find("h3", class_="entry-title bold").text)
    title.append(etitle)
    #    print(e.find("h3", class_="entry-title bold"))
pictures = picture
titles = title

@app.route('/') 
def home():
    return render_template('home.html',pictures=pictures, titles=titles, current_time=current_time)

if __name__ == '__main__':

    app.run(host='0.0.0.0')
    app.run(debug=True)
python windows flask scheduler
1个回答
0
投票

尝试 nssm.exe 将您的应用程序转换为服务,该服务可以随 Windows 启动并在后台运行。

我只是使用

choco
来安装nssm.exe:

choco install nssm

然后重新启动 shell,输入:

nssm install flask

将会弹出一个简单的 GUI。只需以命令行形式设置您的 python 程序即可。

© www.soinside.com 2019 - 2024. All rights reserved.