Как парсить статические Web сайты в Python. Beautiful soup 4

  Рет қаралды 8,474

Sweet Coder

Sweet Coder

Күн бұрын

Парсить статические web-страницы с помощью библиотеки Beautiful Soup в Python очень легко и весело. Но как обычно есть нюансы. Приступим!
• Работа с HTTP в Python... - библиотека requests
#Python #парсинг #beautifulsoup #parse #курс

Пікірлер: 36
@return_1101
@return_1101 4 жыл бұрын
Вот это да. Удивило. Стало интиресно. Удачи вам. Вы делаете интиресные видео. Очень красиво.
@SweetCoder
@SweetCoder 4 жыл бұрын
спасибо за отзыв
@oleg0314
@oleg0314 Жыл бұрын
Друже ! Хорошо зашёл . давай ещё
@__m__a__p__c__7578
@__m__a__p__c__7578 4 жыл бұрын
Если можно, хотелось бы видео-урок, как производить авторизацию на сайтах с помощью requests. Спасибо за другие видео-уроки, очень информативные и понятные!
@SweetCoder
@SweetCoder 4 жыл бұрын
спасибо за отзыв. да, про авторизацию тема интересная. думаю, что мы до неё обязательно дойдём
@__m__a__p__c__7578
@__m__a__p__c__7578 4 жыл бұрын
@@SweetCoder Спасибо, буду ждать.
@АлександрК-ш
@АлександрК-ш 2 жыл бұрын
@@SweetCoder Уже дошли?
@ПетрДивнич
@ПетрДивнич 4 жыл бұрын
Я делал программу парсинга таблиц и проходил все построчно. Долго искал выход.как все упростить. ТОННЫ литературы и гигабайты видео, но тут...Вы... Код сократился в разы! С пасибо!
@SweetCoder
@SweetCoder 4 жыл бұрын
на здоровье. код короткий, потому что пример очень простой. а что означает "проходил всё построчно"?
@ПетрДивнич
@ПетрДивнич 4 жыл бұрын
@@SweetCoder Я, может. неверно выразился. Я не крутой программист,а использую Пайтон для целей в бизнесе -очень помогает. Ранее я не рассматривал контент как всю таблицу целиком, а высматривал в коде теги -точечно их "выдергивал", потом выстраивал в строку или в столбец, пользуясь кучей if, переводами строк, составление списков, словарей и тд итп. а у Вас ролик 8 минут, из которых чистого кода ну 3 минуты, но эти 3 минуты, как манна небесная -коротко,четко и,что самое главное, применительно совершенно к другим сайтам -РАБОТАЕТ с первого раза (ну естественно кое что подправляя под себя))) да, и как писали ниже в коментах - если не сложно, рассмотрите, пожалуйста. парсинг сайта с авторизацией (то есть если инфа не доступна обычному пользователю, но доступна, когда заходишь по логину и паролю). Единственно, интересно, забанят или нет)))
@SweetCoder
@SweetCoder 4 жыл бұрын
@@ПетрДивнич ясно. отлично.
@seal_pavel
@seal_pavel 3 жыл бұрын
up
@SweetCoder
@SweetCoder 3 жыл бұрын
какой лаконичный комментарий
@andrzejpaprocki8192
@andrzejpaprocki8192 2 жыл бұрын
Я запутался... Когда нужно применять метод find() а когда select() ?
@cleando
@cleando 2 жыл бұрын
Восторг! Новый шаг вперёд благодаря вашим советам! Спасибо
@TourShturman
@TourShturman 3 жыл бұрын
очень понятно
@SweetCoder
@SweetCoder 3 жыл бұрын
очень рад
@Chernikru
@Chernikru 3 ай бұрын
при запросе, получаю такой текст, в "боди" We're sorry but client doesn't work properly without JavaScript enabled. Please enable it to continue как это исправить? Джаваскрипт включен. Похоже сайт блокирует . Как это пофиксить? есть методы?
@ЗахарИгнатьев-е3э
@ЗахарИгнатьев-е3э 3 жыл бұрын
Очень интересно и полезно. Тем более с утра 6 часов искал решение по парсингу данных с сайта с одинаковыми тегами. Это было порно, но говно-решение получено. В итоге это дерево и, как вижу с видео, полезнее изучить доп структуры данных, html плотненько и CSS. Буду стараться. Спасибо
@SweetCoder
@SweetCoder 3 жыл бұрын
спасибо за отзыв. удачи!
@АлександрК-ш
@АлександрК-ш 2 жыл бұрын
Урок не понятен, потому что нет исходника страницы, откуда парсилось, так как в интернете её код уже изменился. А именно не понятно, что куда подставлять, чтобы пройтись по колонке "Клуб" сверху вниз.
@Олександр-ю5б
@Олександр-ю5б 4 жыл бұрын
Я пытался писать мини-парсер. Кое что вышло. Но появились вопросы. Например, где может пригодиться команда get.cookies если можно создать сессию и все сделать в ее рамках?
@SweetCoder
@SweetCoder 4 жыл бұрын
не нравятся куки? - не пользуйся. хотя в куках можно хранить идентификатор прошлой/текущей сессии для пущей секьюрности
@Олександр-ю5б
@Олександр-ю5б 4 жыл бұрын
@@SweetCoder не то что бы не нравятся. Мне, как новичку, пока еще не понятны некоторые нюансы и области применения. А за видео спасибо, на некоторые вопросы получил ответ.
@SweetCoder
@SweetCoder 4 жыл бұрын
@@Олександр-ю5б на здоровье. когда возникнет необходимость в куках - уверен, что ты без труда разберешься. если они пока не нужны - то и переживать не о чем
@minimus91
@minimus91 3 жыл бұрын
Всё необходимое для парсинга уже имеется в стандартной библиотеке языка. Для данной задачи достаточно функционала модуля 're'.
@SweetCoder
@SweetCoder 3 жыл бұрын
парсинг с помощью регуляных выражений не многим отличается от парсинга строковыми функциями. как я и говорил в начале видео, иногда это бывает очень больно. давай сравним: чтобы выбрать "все вторые ячейки из таблицы во втором диве, в которых будут ссылки на страницы клубов", как это показано в видео достаточно выполнить вот этот код: td_s = soup.find_all('div',class_='factfileBorder')[1].select('td.team:nth-child(2)') а как будет выглядеть реализация на регулярках? ну а вообще, конечно, каждому своё )) на вкус и цвет товарища нет. а ещё, можно продолжать ездить на лошадях, изготавливать глиняную посуду, и слать друг другу письма с помощью голубиной почты. я уже молчу про генерацию контента
@minimus91
@minimus91 3 жыл бұрын
@@SweetCoder После более тщательного изучения исходного кода страницы, итоговый вариант скрипта слегка "похудел": html = re.search(r'summary="All clubs".+?
@SweetCoder
@SweetCoder 3 жыл бұрын
@@minimus91 действительно очень круто. в полезности регулярных выражений нет совершенно никаких сомнений, ибо BeautifulSoup может только html и xml, а регулярки - абсолютно универсальный инструмент. лично я придерживаюсь мнения, что специальный инструмент лучше универсального. [в данном случае] хотя бы из соображений поддерживаемости кода. каюсь, я в регулярных выражениях полный ноль и вынужден опираться на мнения более опытных коллег. например вот такое habr.com/ru/company/piter/blog/300892/ (если будет время и желание). но это тоже не истина в последней инстанции. как я уже говорил: каждому своё. если нравится и весело - то никто не сможет запретить. кроме, конечно, проджект менеджера или тим лида ))
@ВадимДейнека-х7с
@ВадимДейнека-х7с 4 жыл бұрын
Я начинаючий програміст, поясніть пж що таке "парсинг".
@SweetCoder
@SweetCoder 4 жыл бұрын
за великим рахунком - це синтаксичний аналiз даних. в переважнiй кiлькостi випадкiв - це збiр та вiдокремлення крихт цiнної, важливої iнформацiї з величезного масиву даних. наприклад, як в цьому вiдео. з довжелезного тексту HTML коду ми знаходимо та вiдбираємо лише корисну для нас - назви команд, виявивши певну закономiрнiсть розташування цих данных в загальному об'ємi
@sigma5437
@sigma5437 4 жыл бұрын
Це коли в тебе є пул, набір якихось сайтів, з яких тобі треба збирати/парсити якусь інфу.
@BlondinkaQ
@BlondinkaQ 3 жыл бұрын
нежный редактор)
@SweetCoder
@SweetCoder 3 жыл бұрын
кто?
@BlondinkaQ
@BlondinkaQ 3 жыл бұрын
@@SweetCoder pycharm конечно)
@SweetCoder
@SweetCoder 3 жыл бұрын
@@BlondinkaQ 😂😂😂👍
Скрейпинг сайтов с помощью библиотек Beautifulsoup и Requests на Python
23:05
Мастерская Важных историй
Рет қаралды 82 М.
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 30 МЛН
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
Всё об исключениях и работе с ними в Python
30:34
Диджитализируй!
Рет қаралды 51 М.
BeautifulSoup + Requests | Web Scraping in Python
6:58
Alex The Analyst
Рет қаралды 179 М.
Beautiful Soup 4 Tutorial #1 - Web Scraping With Python
17:01
Tech With Tim
Рет қаралды 501 М.
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41