Грабер из интернета
Опубликовано 5 сентября, 2023 - 10:58 пользователем an2k
Создайте программу с именем 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])
- Блог пользователя an2k
- Войдите, чтобы оставлять комментарии
- 90 просмотров