直接从Python在浏览器中启动HTML代码(由BeautifulSoup生成)
我使用了用于Python 3.3的BeautifulSoup,成功地从网页中获取所需的信息。我还使用BeautifulSoup生成新的HTML代码来显示此信息。目前,我的Python程序打印出HTML代码,然后将其复制、粘贴并保存为HTML文件,然后在浏览器中对其进行测试 所以我的问题是,Python中有没有一种方法可以在web浏览器中启动BeautifulSoup生成的HTML代码,这样我就不必使用现在使用的复制粘贴方法了?使用: 用于将代码转换为本地web应用程序:直接从Python在浏览器中启动HTML代码(由BeautifulSoup生成),python,html,python-3.x,beautifulsoup,Python,Html,Python 3.x,Beautifulsoup,我使用了用于Python 3.3的BeautifulSoup,成功地从网页中获取所需的信息。我还使用BeautifulSoup生成新的HTML代码来显示此信息。目前,我的Python程序打印出HTML代码,然后将其复制、粘贴并保存为HTML文件,然后在浏览器中对其进行测试 所以我的问题是,Python中有没有一种方法可以在web浏览器中启动BeautifulSoup生成的HTML代码,这样我就不必使用现在使用的复制粘贴方法了?使用: 用于将代码转换为本地web应用程序: from flask i
from flask import Flask
app = Flask(__name__)
@app.route('/')
def scrape_and_reformat():
# call your scraping code here
return '<html><body> ... generated html string ... </body></html>'
if __name__ == '__main__':
app.run()
从烧瓶导入烧瓶
app=烧瓶(名称)
@应用程序路径(“/”)
def刮取和重新格式化()
#在这里调用您的刮码
返回“。。。生成的html字符串…'
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run()
运行脚本,并将浏览器指向http://127.0.0.1:5000/
(这已经足够了,我想我应该把它作为一个单独的答案分开:)
正如@爬行动物所指出的,您可以按如下方式使用内置模块:
cd /my/web/directory
python -m http.server 8000
http://127.0.0.1:8000
这只适用于静态文件;它不会运行您的脚本并返回结果(就像Flask一样)。或者只是SimpleHTTPServer?@爬行动物,仅供参考,Python 3.x中没有SimpleHTTPServer,但是。谢谢。这是我现在正在寻找的简单解决方案。with delete=False在这里可能更可取,因为它(很可能)最终会被OS@Jay,谢谢你的评论。更新了答案,以包含使用NamedTemporaryFile的替代方案。我需要将tempfile.NamedTemporaryFile('w',delete=False,suffix=“.html”)作为f:使用
,以便在浏览器中正确呈现html。否则,我只是在浏览器中看到了原始html字符串。@marvin,谢谢你的评论。我相应地更新了答案。谢谢。这是我第一次尝试在Python中使用HTML做任何事情,所以这个http:server现在有点让我不知所措。如果我打算最终把代码放到网上,这会是一个有用的学习模块吗?@user3108789:这真的不难;这实际上需要15秒的时间。按照上面的步骤来尝试!要在“实际托管”站点上工作,我将使用Flask(如上所述);一旦您有了一点经验,请尝试Django(但这是一个更大的环境,具有更大的学习曲线。Flask更容易入门)。这里有更多选项:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def scrape_and_reformat():
# call your scraping code here
return '<html><body> ... generated html string ... </body></html>'
if __name__ == '__main__':
app.run()
cd /my/web/directory
python -m http.server 8000