@TonyTrueTony

Как красиво подсчитать слова на сайте?

Задался целью подсчитать количество определенных слов на сайте.
Накидал код
import requests
from bs4 import BeautifulSoup
import re


word = 'Pitton'
url = 'https://en.wikipedia.org/wiki/Joseph_Pitton_de_Tournefort'
count = 0

r = requests.get(url)
soup = BeautifulSoup(r.content, 'lxml')
# убираю теги html
w = re.sub(r'<[^>]+>', '', str(soup))
# отделяю не буквы от слов для корректного сплита
w = re.sub(r'\W', ' ', w)

for i in w.split():
    if i.lower() == word.lower():
        count += 1

print(count)

Но такой код не учитывает текст, который остался в script
Конечно можно было бы написать еще одно регулярное выражение, но может есть библиотека, которая сама уберёт всё лишнее из html и превратить его в красивую строку?
  • Вопрос задан
  • 441 просмотр
Пригласить эксперта
Ответы на вопрос 1
makarenya
@makarenya
программист
Есть такое, передведёт html в текст

html2text

А ещё люди делают так:
for script in soup(["script", "style"]):
    script.extract()
text = soup.get_text()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы