我用python编写了一个脚本来生成html文件。如何使用web检索的数据动态更改其内容

2024-04-27 01:13:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我用pycharm作为IDE创建一个新的html文件来开始我的代码 为了简单起见,我将跳到由以下代码创建的新html文档的body部分。在

newHtmlFile = open('todaysNBAScores.html', 'w')
newHtmlFile.write("""<body><p>**How can I dynamically change the content of this paragraph ?**<p></body>""")

newHtmlFile.close()

虽然我还没有创建爬虫程序,但我只需要一个简单的字符串变量示例来替换<p></p>标记中的当前信息。在


Tags: 文件代码文档htmlbodyopenidechange
3条回答
template = '<html><body><p>{}</p></body></html>'

with open('index.html') as html:
    html.write(template.format(newContent))

如果您想使用python动态生成HTML文件,有很多选项。一个好方法是使用Jinja2模板引擎。在

您设计一个html模板其中包含占位符变量,然后使用每次填充的值对其进行渲染。在

先安装jinja2

pip install jinja2

您将html页面的结构作为模板提供,并使用特殊的{{ }}块来显示数据应该填充到哪里。在

然后,通过提供一个包含键/值对的字典来填充指定的块来呈现模板。在

^{pr2}$

结果是插入值的新字符串

u'<Title> First page </Title><body> This is the first page </body>'

可以使用不同的值再次渲染以获得不同的结果

dict["title"] = "Second page"
dict["content"] = "This is a different page"
t.render(dict)

结果:

u'<Title> Second page </Title><body> This is a different page </body>'

像jinja2这样的模板引擎可以轻松地在html上进行许多复杂的转换,因此,如果您不仅仅是替换一个字符串,那么投入时间使用这些代码可能是值得的。在

更多示例请参见documentation。在

我想我会这样做的。在

dynamicContent = "Foo Bar"
content = "<body><p>%s<p></body>" % (dynamicContent) 

with open('todaysNBAScores.html', 'w') as newHTMLFile:
    newHTMLFile.write(content)
    newHTMLFile.close()

*.html文件将包含

^{pr2}$

相关问题 更多 >