Всем привет!
В этой статье немного поговорим о парсинге. Если совсем просто, то будем получать данные с сайта, методом поиска на нём нужной информации.
На сайте 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 и там посмотреть последний номер цитаты.
Присвоим переменной urlbash строку http://www.bashorg.org/quote/ и прибавим к ней полученное рандомное число из переменной random_bash и выведем на экран ссылку в виде рандомной цитаты + сам номер цитаты.
3. Создадим запрос к сайту (URL). Можно вывести статус кода запроса (я не стал) и Можно вывести всю разметку с нашего сайта (я тоже не стал) эти строчки я просто закомментировал решеткой. Присвоим переменной soup весь наш искомый текс из разметки страницы.
4. Пробежимся циклом по этой разметке в поиске нужного нам текста. Нужный нам текст лежит в теге div в классе quote. Узнать класс и тег можно зайдя на страницу с цитатой и в браузере нажать посмотреть элемент или код.
Сам цикл:
5. Принтом выводим найденный текст, это и есть цитаты.
Командой print(len(link.text)) можно подсчитать длину цитаты (Я отключил эту функцию, просто закомментировав эту строку)
6. И в 19 строке откроем файл bashorg.txt для записи, методом добавления "a" в него цитат. link.text+ "\n" - запишет цитату в файл + в конце новая строка.
И последняя строка записывает звездочки для красоты. Вот текстовый документ с цитатами:
А вот результат выполнения в командной строке:
Вот такой небольшой и простой парсер у меня получился. Я бы еще добавил например, что бы каждый день в определённое время 1 цитата отправлялась мне от бота, например в Telegram. Ну или что ни будь в таком духе.
Вот весь код:
Спасибо что дочитали. Ставь палец вверх этой статье и подписывайся на мой канал "Свой Айтишник".
Развивайтесь, изучайте новое и не болейте, всем пока!
#bashorg #парсинг #Parsing #свой айтишник #парсинг сайта #парсер на python