使用BeautifulSoup和Flask框架实现网页内容的实时推送和更新
下面是一个简单的示例,使用BeautifulSoup和Flask框架实时推送和更新pidancode.com网站的标题。
from flask import Flask, render_template from bs4 import BeautifulSoup import requests import time app = Flask(__name__) def get_title(): url = "http://pidancode.com" # 需要获取的网页地址 res = requests.get(url) soup = BeautifulSoup(res.text, "html.parser") title = soup.title.text # 获取网页标题 return title @app.route("/") def index(): title = get_title() # 获取网页标题 return render_template("index.html", title=title) @app.route("/update") def update(): while True: title = get_title() # 获取最新的网页标题 yield "data: {}\n\n".format(title) # 使用 yield 实时推送数据 time.sleep(5) if __name__ == "__main__": app.run(debug=True)
上述代码中,我们首先定义了一个名为get_title
的函数,用于从pidancode.com
网站获取网页标题。然后,在Flask应用中,我们定义了一个路由函数index
,用于展示当前网页标题。另外,我们还定义了一个路由函数update
,用于实时推送获取的网页标题,更新前端页面。
在Flask应用中,我们使用Flask提供的render_template
函数和Jinja2
模板引擎,渲染HTML页面。HTML页面中使用了EventSource
对象来建立实时推送连接。
在运行应用时,我们可以通过访问http://localhost:5000/update
来建立实时推送连接,Flask应用将定期获取pidancode.com
网站的网页标题,将最新的标题实时推送给前端页面。
相关文章