Грабер из интернета

Создайте программу с именем graber.py и выполните ее

import re              # модуль регулярных выражений
import urllib.request  # из модуля urllib2 импортируем функцию urlopen

# 1-й сайт: Шекспир. Гамлет
url = 'https://standardebooks.org/ebooks/william-shakespeare/hamlet/text/single-page

# 2-й сайт: агентства Рейтер
#url = 'https://www.reuters.com/'


# открываем URL на чтение
f = urllib.request.urlopen(url)
site_bytes = f read()
site = site_bytes.decode('utf8')
f.close()

words = {}                          # связываем имя words с пустым словарём

for line in site.split('\n')        # читаем по строкам
    line.strip(' \n')               # отбрасываем пробелы в конце строк

    # очищаем текст от тегов и от всего лишнего
    line = re.sub('<.*?>', '', line)
    line = re.sub('[^a-zA-Zа-яА-Я0-9 ёЁ]+', '', line)

    for word in line.split(' '):  # режем каждую строку на слова
        try:                        # блок обработки исключений
            words[word] += 1          # пытаемся увеличить кол-во на единицу
        except KeyError:            # если не получилось (первое слово)
            words[word] = 1           # присваиваем единицу

# делаем из словаря список и сортируем его
lst = sorted(words.items(), key=lambda x: x[1])

# вывод слов построчно с количеством упоминаний в тексте
for p in lst :
    # ограничиваем вывод словами от 4 до 20 букв и частотой не менее 25
    if len(p[0]) > 4 and len(p[0]) < 20 and p[1] >= 25 :
        print(p[0], p[1])