我正在尝试为我的网站创建站点地图,而不必通过将对我有用的网站来运行。这是因为网站经常更改。
我在网上找到了实现此目标的代码:
@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))
它可以创建基本的站点地图。好吧,很简单。
我想在每个页面的meta标签中添加一个优先级,然后从中构建站点地图。这样的SO问题/答案涵盖了这一点,但它使用的是beautifulsoup和urllib,并且更适合于Web,而不是本地实例。
因此,我认为我需要render_template
为每个路由(在本例中为rule.rule
)进行解析,也许可以使用BeautifulSoup进行解析并获得优先级。我不知道该怎么做。有没有一种方法可以按其路线获取每个模板,以便我可以对其进行解析?
我最终在这些路线上使用了beautifulsoup4。感到羞愧的烧瓶似乎并没有提供更直接的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句