Как парсить статические Web сайты в Python. Beautiful soup 4
HTML-код
- Опубликовано: 28 сен 2024
- Парсить статические web-страницы с помощью библиотеки Beautiful Soup в Python очень легко и весело. Но как обычно есть нюансы. Приступим!
• Работа с HTTP в Python... - библиотека requests
#Python #парсинг #beautifulsoup #parse #курс
Вот это да. Удивило. Стало интиресно.
Удачи вам.
Вы делаете интиресные видео. Очень красиво.
спасибо за отзыв
Если можно, хотелось бы видео-урок, как производить авторизацию на сайтах с помощью requests. Спасибо за другие видео-уроки, очень информативные и понятные!
спасибо за отзыв. да, про авторизацию тема интересная. думаю, что мы до неё обязательно дойдём
@@SweetCoder Спасибо, буду ждать.
@@SweetCoder Уже дошли?
Восторг! Новый шаг вперёд благодаря вашим советам! Спасибо
Я запутался... Когда нужно применять метод find() а когда select() ?
up
какой лаконичный комментарий
Я пытался писать мини-парсер. Кое что вышло. Но появились вопросы. Например, где может пригодиться команда get.cookies если можно создать сессию и все сделать в ее рамках?
не нравятся куки? - не пользуйся. хотя в куках можно хранить идентификатор прошлой/текущей сессии для пущей секьюрности
@@SweetCoder не то что бы не нравятся. Мне, как новичку, пока еще не понятны некоторые нюансы и области применения.
А за видео спасибо, на некоторые вопросы получил ответ.
@@Олександр-ю5б на здоровье. когда возникнет необходимость в куках - уверен, что ты без труда разберешься. если они пока не нужны - то и переживать не о чем
Очень интересно и полезно.
Тем более с утра 6 часов искал решение по парсингу данных с сайта с одинаковыми тегами. Это было порно, но говно-решение получено.
В итоге это дерево и, как вижу с видео, полезнее изучить доп структуры данных, html плотненько и CSS.
Буду стараться.
Спасибо
спасибо за отзыв. удачи!
Всё необходимое для парсинга уже имеется в стандартной библиотеке языка. Для данной задачи достаточно функционала модуля 're'.
парсинг с помощью регуляных выражений не многим отличается от парсинга строковыми функциями. как я и говорил в начале видео, иногда это бывает очень больно. давай сравним: чтобы выбрать "все вторые ячейки из таблицы во втором диве, в которых будут ссылки на страницы клубов", как это показано в видео достаточно выполнить вот этот код:
td_s = soup.find_all('div',class_='factfileBorder')[1].select('td.team:nth-child(2)')
а как будет выглядеть реализация на регулярках?
ну а вообще, конечно, каждому своё )) на вкус и цвет товарища нет. а ещё, можно продолжать ездить на лошадях, изготавливать глиняную посуду, и слать друг другу письма с помощью голубиной почты.
я уже молчу про генерацию контента
@@SweetCoder После более тщательного изучения исходного кода страницы, итоговый вариант скрипта слегка "похудел":
html = re.search(r'summary="All clubs".+?
@@minimus91 действительно очень круто. в полезности регулярных выражений нет совершенно никаких сомнений, ибо BeautifulSoup может только html и xml, а регулярки - абсолютно универсальный инструмент. лично я придерживаюсь мнения, что специальный инструмент лучше универсального. [в данном случае] хотя бы из соображений поддерживаемости кода. каюсь, я в регулярных выражениях полный ноль и вынужден опираться на мнения более опытных коллег. например вот такое habr.com/ru/company/piter/blog/300892/ (если будет время и желание). но это тоже не истина в последней инстанции. как я уже говорил: каждому своё. если нравится и весело - то никто не сможет запретить. кроме, конечно, проджект менеджера или тим лида ))
Я начинаючий програміст, поясніть пж що таке "парсинг".
за великим рахунком - це синтаксичний аналiз даних. в переважнiй кiлькостi випадкiв - це збiр та вiдокремлення крихт цiнної, важливої iнформацiї з величезного масиву даних. наприклад, як в цьому вiдео. з довжелезного тексту HTML коду ми знаходимо та вiдбираємо лише корисну для нас - назви команд, виявивши певну закономiрнiсть розташування цих данных в загальному об'ємi
Це коли в тебе є пул, набір якихось сайтів, з яких тобі треба збирати/парсити якусь інфу.
нежный редактор)
кто?
@@SweetCoder pycharm конечно)
@@BlondinkaQ 😂😂😂👍
Друже ! Хорошо зашёл . давай ещё
очень понятно
очень рад
Я делал программу парсинга таблиц и проходил все построчно. Долго искал выход.как все упростить. ТОННЫ литературы и гигабайты видео, но тут...Вы... Код сократился в разы! С пасибо!
на здоровье. код короткий, потому что пример очень простой. а что означает "проходил всё построчно"?
@@SweetCoder Я, может. неверно выразился. Я не крутой программист,а использую Пайтон для целей в бизнесе -очень помогает. Ранее я не рассматривал контент как всю таблицу целиком, а высматривал в коде теги -точечно их "выдергивал", потом выстраивал в строку или в столбец, пользуясь кучей if, переводами строк, составление списков, словарей и тд итп. а у Вас ролик 8 минут, из которых чистого кода ну 3 минуты, но эти 3 минуты, как манна небесная -коротко,четко и,что самое главное, применительно совершенно к другим сайтам -РАБОТАЕТ с первого раза (ну естественно кое что подправляя под себя))) да, и как писали ниже в коментах - если не сложно, рассмотрите, пожалуйста. парсинг сайта с авторизацией (то есть если инфа не доступна обычному пользователю, но доступна, когда заходишь по логину и паролю). Единственно, интересно, забанят или нет)))
@@ПетрДивнич ясно. отлично.
Урок не понятен, потому что нет исходника страницы, откуда парсилось, так как в интернете её код уже изменился. А именно не понятно, что куда подставлять, чтобы пройтись по колонке "Клуб" сверху вниз.