gpt4 book ai didi

python - BeautifulSoup 输出可以发送到浏览器吗?

转载 作者:搜寻专家 更新时间:2023-10-31 23:02:53 25 4
gpt4 key购买 nike

我对最近介绍的 python 还很陌生,但我对 php 有大部分经验。 php 在处理 HTML 时的一件事(不足为奇)是 echo 语句将 HTML 输出到浏览器。这使您可以使用内置的浏览器开发工具,例如 firebug。使用beautiful soup等工具时,有没有办法将输出python/django从命令行重新路由到浏览器?理想情况下,每次运行代码都会打开一个新的浏览器选项卡。

最佳答案

如果你用的是Django,你可以render BeautifulSoup 在 View 中的输出:

from django.http import HttpResponse
from django.template import Context, Template

def my_view(request):
# some logic

template = Template(data)
context = Context({}) # you can provide a context if needed
return HttpResponse(template.render(context))

其中 dataBeautifulSoup 的 HTML 输出。


另一种选择是使用 Python 的 Basic HTTP server并提供您拥有的 HTML:

from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer

PORT_NUMBER = 8080
DATA = '<h1>test</h1>' # supposed to come from BeautifulSoup

class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(DATA)
return


try:
server = HTTPServer(('', PORT_NUMBER), MyHandler)
print 'Started httpserver on port ', PORT_NUMBER
server.serve_forever()
except KeyboardInterrupt:
print '^C received, shutting down the web server'
server.socket.close()

另一种选择是使用 selenium ,打开about:blank页面,适当设置body标签的innerHTML。换句话说,这将在正文中使用提供的 HTML 内容启动浏览器:

from selenium import webdriver

driver = webdriver.Firefox() # can be webdriver.Chrome()
driver.get("about:blank")

data = '<h1>test</h1>' # supposed to come from BeautifulSoup
driver.execute_script('document.body.innerHTML = "{html}";'.format(html=data))

屏幕截图(来自 Chrome):

enter image description here


而且,您始终可以选择将 BeautifulSoup 的输出保存到 HTML 文件中并使用 webbrowser 打开它。模块(使用 file://.. url 格式)。

另请参阅其他选项:

希望对您有所帮助。

关于python - BeautifulSoup 输出可以发送到浏览器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com