【问题标题】:How do I parse my own HTML files in Flask?如何在 Flask 中解析我自己的 HTML 文件?
【发布时间】:2020-10-30 17:31:49
【问题描述】:

我正在尝试为我的网站创建一个站点地图,而不是通过一个可以为我制作它的网站来运行它。这是因为网站经常变化。

我在网上找到了部分实现的代码:

@app.route('/sitemap.xml', methods=['GET'])
def sitemap():
    try:
      """Generate sitemap.xml. Makes a list of urls and date modified."""
      pages = []
      seven_days_ago = (datetime.datetime.now() - datetime.timedelta(days=7)).date().isoformat()
      for rule in app.url_map.iter_rules():
          if "GET" in rule.methods and len(rule.arguments) == 0:
               pages.append( ["..." + str(rule.rule), seven_days_ago])
 
      sitemap_xml = render_template('pages/sitemap_template.xml', pages=pages)
      response = make_response(sitemap_xml)
      response.headers["Content-Type"] = "application/xml"

      return response
    except Exception as e:
        return(str(e))

它可以创建一个基本的站点地图。好的,很简单。

我想在每个页面的元标记中添加一个优先级,然后以此为基础构建站点地图。 This SO question/answer 涵盖了这一点,但它使用的是 beautifulsoup 和 urllib,并且更适合网络,而不是本地实例。

所以,我认为我需要为每条路线使用render_template(在本例中为rule.rule)然后解析它,也许使用 BeautifulSoup 并获得优先权。我不知道该怎么做。有没有办法根据路由获取每个模板,以便我解析它?

【问题讨论】:

标签: flask


【解决方案1】:

我最终在这些路线上使用了 beautifulsoup4。可惜烧瓶似乎没有提供更直接的方法。

【讨论】:

    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2014-12-21
    • 2018-12-03
    相关资源
    最近更新 更多