Запустите HTML-код в браузере (который создается BeautifulSoup) прямо из Python
Я использовал BeautifulSoup для Python 3.3 для успешного удаления желаемой информации с веб-страницы. Я также использовал BeautifulSoup для генерации нового HTML-кода для отображения этой информации. В настоящее время моя программа Python выводит HTML-код, который затем мне нужно скопировать, вставить и сохранить в виде HTML файла, а затем оттуда проверить его в браузере.
Итак, мой вопрос в том, есть ли способ в Python запустить HTML-код, созданный BeautifulSoup, в веб-браузере, чтобы мне не пришлось использовать метод копирования и вставки, который я использую сейчас?
Ответы
Ответ 1
Использование webbrowser.open
:
import os
import webbrowser
html = '<html> ... generated html string ...</html>'
path = os.path.abspath('temp.html')
url = 'file://' + path
with open(path, 'w') as f:
f.write(html)
webbrowser.open(url)
Альтернативное использование NamedTemporaryFile
(чтобы в конечном итоге файл был удален ОС):
import tempfile
import webbrowser
html = '<html> ... generated html string ...</html>'
with tempfile.NamedTemporaryFile('w', delete=False, suffix='.html') as f:
url = 'file://' + f.name
f.write(html)
webbrowser.open(url)
Ответ 2
Используйте 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()
Запустите script и укажите браузер на http://127.0.0.1:5000/
.
Ответ 3
(это стало достаточно, и я решил, что я должен разделить его как отдельный ответ:)
Как указывает @reptilicus, вы можете использовать встроенный модуль http.server следующим образом:
-
Создайте каталог веб файлов и сохраните в нем свой .html файл.
-
Откройте окно командной строки и сделайте
cd /my/web/directory
python -m http.server 8000
-
Направьте свой браузер на http://127.0.0.1:8000
Это работает только для статических файлов; он не запускает ваш script и возвращает результаты (как это делает Flask).