我可以在Powershell中打印输出,但我希望文本显示在网站上,而不是在Powershell上。
这是我的index.html:
<!DOCTYPE html>
<html>
<head>
<title>Fluxus Generator</title>
</head>
<body bgColor="peachpuff">
<center><h1>Fluxus Generator</h1><center>
<center><img src="card.png" alt="Card" /></center>
<font face= "Calibri" size="7" color = "purple">
<center><p><a href="/">Another Card</a></p></center>
</body>
</html>
这里是app.py :(我将app.py与main.py联合起来,因为单独没有用)
from bs4 import BeautifulSoup
import requests
import random
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
def generate_word():
"""Generate a list of words and shuffle them"""
words = list()
req = requests.get('https://en.wikipedia.org/wiki/List_of_plain_English_words_and_phrases')
html_source = req.text
soup = BeautifulSoup(html_source, "html.parser")
for source in soup.find_all('a', { "class" : "extiw" }):
word = source.find(text = True)
try:
word = str(word)
words.append(word)
except:
pass
random.shuffle(words)
return words
def generate_instruction(words):
"""Build an instruction from the word lists"""
instruction_struct = [
'I', words[0], words[1], words[8], 'the',
words[2], words[5], 'with',
words[4], words[7]
]
instruction = ' '.join(instruction_struct)
print instruction
words = generate_word()
generate_instruction(words)
if __name__ == '__main__':
app.run()
我已经尝试过cgi,web但是没有成功。 我应该如何更改代码,以便在网站上获取文本? 我应该添加到index.html吗?
答案 0 :(得分:0)
BeautifulSoup
是一个错误的工具。它用于解析页面,你需要的是一个反向的页面创建。
您需要的是模板引擎,例如Jinja2(大型)或Tempita(小型)。
使用它,您可以创建一个HTML 模板,一个具有正常结构和一些占位符的文档,然后通过用数据替换占位符来渲染。
(Flask是一个不错的选择。对于更少的依赖项,请尝试web.py。)