Найти тему
Свой Айтишник

Python: Получаем цитаты с bashorg

Всем привет!

В этой статье немного поговорим о парсинге. Если совсем просто, то будем получать данные с сайта, методом поиска на нём нужной информации.

На сайте bashorg.org есть много разных цитат, вот как раз эти цитаты мы и будем "парсить".

Для начала определимся с целью:

  • Нужно получить произвольную цитату с баша в нашу программу
  • Нужно записать эту цитату в текстовый файл, да так чтобы она не перезаписывалась, а добавлялась к предыдущей.
  • Ну и при выводе что бы писался номер цитаты

Я буду использовать язык #Python и дополнительные библиотеки к нему: #requests #BeautifulSoup и #random

В папке я создал файл bashorg.py и открыв командную строку в этой папке я установил эти библиотеки:

pip install requests
pip install random2
pip install bs4 - он же (BeautifulSoup)

Откроем ранее созданный файл и начнем писать код.

1. Импортируем наши библиотеки

Импорт библиотек
Импорт библиотек

2. Присвоим переменной random_bash произвольное число от 1 до 87932, 87932 - потому что на "баше" всего 87932 цитат. Узнать просто, нужно зайти на bashorg и там посмотреть последний номер цитаты.

-2

Присвоим переменной urlbash строку http://www.bashorg.org/quote/ и прибавим к ней полученное рандомное число из переменной random_bash и выведем на экран ссылку в виде рандомной цитаты + сам номер цитаты.

-3

3. Создадим запрос к сайту (URL). Можно вывести статус кода запроса (я не стал) и Можно вывести всю разметку с нашего сайта (я тоже не стал) эти строчки я просто закомментировал решеткой. Присвоим переменной soup весь наш искомый текс из разметки страницы.

-4

4. Пробежимся циклом по этой разметке в поиске нужного нам текста. Нужный нам текст лежит в теге div в классе quote. Узнать класс и тег можно зайдя на страницу с цитатой и в браузере нажать посмотреть элемент или код.

-5

Сам цикл:

-6

5. Принтом выводим найденный текст, это и есть цитаты.

Командой print(len(link.text)) можно подсчитать длину цитаты (Я отключил эту функцию, просто закомментировав эту строку)

6. И в 19 строке откроем файл bashorg.txt для записи, методом добавления "a" в него цитат. link.text+ "\n" - запишет цитату в файл + в конце новая строка.

И последняя строка записывает звездочки для красоты. Вот текстовый документ с цитатами:

Запись в блокнот цитат
Запись в блокнот цитат

А вот результат выполнения в командной строке:

Результат работы программы
Результат работы программы
Результат работы программы
Результат работы программы
Результат работы программы
Результат работы программы

Вот такой небольшой и простой парсер у меня получился. Я бы еще добавил например, что бы каждый день в определённое время 1 цитата отправлялась мне от бота, например в Telegram. Ну или что ни будь в таком духе.

Вот весь код:

Код целиком.
Код целиком.

Спасибо что дочитали. Ставь палец вверх этой статье и подписывайся на мой канал "Свой Айтишник".

Развивайтесь, изучайте новое и не болейте, всем пока!

#bashorg #парсинг #Parsing #свой айтишник #парсинг сайта #парсер на python