«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно извлечь чистый текст из HTML в Python?

Как я могу эффективно извлечь чистый текст из HTML в Python?

Опубликовано в 2025-03-04
Просматривать:421

How Can I Efficiently Extract Clean Text from HTML in Python?

извлечение текста из html с Python

Ваша цель - извлечь текст из html -файла в питоне, повторяя вывод, который вы получите, копируя текст и проводя его в текст в текст, и вводил его в текст в текст и проводя его в текст. Editor.

испытает

, регулярные выражения недостаточно надежны для плохо сформированного HTML. В то время как красивый суп часто рекомендуется, он может подбирать нежелательный контент, такой как Javascript и не интерпретировать HTML Entities.

многообещающая альтернатива: html2text

, хотя он создает разметку вместо простого текста, html2text обрабатывает html persities и игнорирует javascript. Однако, его документация и примеры ограничены.

оптимальный код для извлечения текста

код ниже предлагает эффективное решение, которое отфильтровывает нежелательные элементы и сохраняет Html Entitions:

от BS4 Importsoup url = "http://news.bbc.co.uk/2/hi/health/2284783.stm" html = urlopen (url) .read () Soup = beautifulsoup (html, features = "html.parser") # Удалить сценарии и стили Для сценария в супе ([«Скрипт», «Стиль»]): script.extract () # Извлечь текст text = soup.get_text () # Преобразовать разрывы строк и удалить пробелы lines = (line.strip () для line in text.splitlines ()) chunks = (phrase.strip () для строки в строках для фразы в line.split ("")) Text = '\ n'.join (кусок для кусочек в кусках, если кусок) print (text)
from urllib.request import urlopen
from bs4 import BeautifulSoup

url = "http://news.bbc.co.uk/2/hi/health/2284783.stm"
html = urlopen(url).read()
soup = BeautifulSoup(html, features="html.parser")

# Remove scripts and styles
for script in soup(["script", "style"]):
    script.extract()

# Extract text
text = soup.get_text()

# Convert line breaks and remove whitespace
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
text = '\n'.join(chunk for chunk in chunks if chunk)

print(text)

degy Deving

, чтобы использовать этот код, вам понадобится BeautifulSoup4 с:

PIP установить BeautifulSoup4
]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3