извлечение текста из 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