Самые частые слова на сайте с Python и bs4

Самые частые слова на сайте с Python и bs4

Самые частые слова на сайте с Python и bs4

В сегодняшней статье мы рассмотрим скрипт по подсчету частот слов на сайте. И как следовало ожидать реализуем мы это с помощью Python.
Задача состоит в динамическом извлечении самых частых слов из страницы сайта.

Для начала нам понадобится создать парсер сайта с помощью requests и beautiful soup. Он будет извлекать данные с сайта и сохранять в виде списка. Следует иметь в виду, что среди извлеченной информации могут встречаться нежелательные символы, которые мы отфильтруем.

Перейдем к коду:





# Скрипт Python3 подсчитывает частоту слов 

# после парсинга веб-страницы



import requests

from bs4 import BeautifulSoup

import operator

from collections import Counter







'''Функция веб-скарпинга, получает информацию

с веб-сайта, и передает ее 

в функцию фильтр filter_wlist()'''



def scarpy(url):



  # пустой список для хранения

  # полученных данных

  wlist = []

  sour_text = requests.get(url).text



  # Объект BeautifulSoup, который будет

  # пинговать запрошенный URL-адрес для получения данных



  t_soup = BeautifulSoup(sour_text, 'html.parser')



  # Текст на данной веб-странице хранится 

  # во вложенных тегах ul

  for each_text in t_soup.findAll('ul'):

    cont = each_text.text



    # используйте split(), чтобы разбить предложение на

    # слова и преобразуйте их в нижний регистр

    w = cont.lower().split()



    for e_w in w:

      wlist.append(e_w)

    filter_wlist(wlist)





# Следующая функция будет удалять любой нежелательный

# символ

def filter_wlist(wordlist):



  cln_lst = []

  for word in wordlist:

    symbols = "!@#$%^&*()_-+={[}]|;:"<>?/., "



    for i in range(len(symbols)):

      word = word.replace(symbols[i], '')



    if len(word) > 0:

      cln_lst.append(word)

  create_dict(cln_lst)





# Создаем словарь, содержащий каждое слово

# количество и топ 20 встречающихся слов

def create_dict(clean_list):

  word_count = {}



  for word in clean_list:

    if word in word_count:

      word_count[word] += 1

    else:

      word_count[word] = 1





  c = Counter(word_count)



  # Функция возвращает наиболее часто встречающиеся элементы

  top = c.most_common(20)

  print(top)





# Запуск кода

if __name__ == '__main__':

  url = "https://myrusakov.ru/python-tutorial.html"

 
scarpy(url)





Полученный пример имеет множество вариантов использования.Один из них — это синтаксический анализ и определение тематики сайта.
Конечно данный пример не демонстрирует полностью возможности парсинга с Python и beautiful soup, все же он дает понимание основных принципов его работы.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий