Как парсить динамические web сайты в Python. Beautiful soup 4.

Поділитися
Вставка
  • Опубліковано 7 гру 2020
  • Парсить динамический web-страницы немного сложнее чем статические. Но и интересней. Давай посмотрим на некоторые нюансы.
    • Как парсить статически... - парсинг статических сайтов
    • Работа с HTTP в Python... - библиотека requests
    #Python #парсинг #beautifulsoup #parse #курс

КОМЕНТАРІ • 54

  • @4nrishka
    @4nrishka 3 роки тому +9

    Спасибо, очень полезный материал. Пожалуйста, не останавливайтесь )

    • @SweetCoder
      @SweetCoder  3 роки тому +1

      спасибо за отзыв

  • @fedorsveshnikov7090
    @fedorsveshnikov7090 3 роки тому +5

    классные уроки, очень понятно и приятно

    • @SweetCoder
      @SweetCoder  3 роки тому

      спасибо за отзыв

  • @user-kr6gv7sg2p
    @user-kr6gv7sg2p 3 роки тому +4

    Нда...
    Моща...
    Не по стесняюсь добавить, что от этой смеси мощи python + bs + знание как использовать html как дерево + CSS = у меня даже чуть привстал....
    Очень круто.
    Даже при параллельном написании кода ошибок наделал потрясающих и нашел решение.
    Получил ответ на один вопрос. Это отлично.
    И нашел еще 100 вопросов без ответа - а вот это ахуенно)))
    Вы Молодец!!!

    • @SweetCoder
      @SweetCoder  3 роки тому

      спасибо за отзыв и яркое описание впечатлений. но в следующий раз воздержись от использования нелитературных выражений. на канале иногда бывают женщины и дети

  • @TravelSakh_bot
    @TravelSakh_bot 6 місяців тому +2

    У меня просьба, меньше по памяти, больше на расжовывание. Контент очень интересный, перешёл на него с ПайтенХабСтудио и понимаю, что тут быстрее подача информации, но из-за скорости и иногда отсутствия параллельной перебежи мёду скриптом и сайтом приходится все останавливать и юзать назад

  • @agilitytrade
    @agilitytrade 2 роки тому +1

    Спасибо друже

  • @user-vl7np7or2c
    @user-vl7np7or2c 3 роки тому +1

    Спасибо

  • @hackoffme
    @hackoffme 2 роки тому +5

    Очень будет интересно увидеть материал по парсингу сайтов на ajax. Если есть опыт в этой области, запиши пожалуйста :)

    • @SweetCoder
      @SweetCoder  2 роки тому

      по сути никаких отличий. запросы нужно будет отправлять на те эндпоинты, на которые отправляются ajax-запросы

    • @hackoffme
      @hackoffme 2 роки тому +2

      @@SweetCoder попытался разобрать сайт днс. И чёт не получилось :) от него приходит только скрипт.

    • @himegood
      @himegood 2 роки тому

      @@hackoffme Здравствуйте. У меня такая же проблема. Только с магазином Ок. У вас получилось решить данную проблему?

  • @mihail_sergeev
    @mihail_sergeev 2 роки тому +3

    Прочитал в заголовке парсинг динамического сайта и рассчитывал увидеть парсинг страниц подгружаемых с помощью javascript.

    • @SweetCoder
      @SweetCoder  2 роки тому

      в принципе, в некоторых отдельных случаях при условии проведении глубокого анализа архитектуры приложения возможно и такое

  • @snake--
    @snake-- 3 роки тому +10

    Это не совсем динамическая страница) вернее для парсера это одно и тоже что на прошлом видео что на этом. Было бы крайне интересно посмотреть как грабаить страницы после выполнения на них javascript

    • @SweetCoder
      @SweetCoder  3 роки тому +1

      это очень даже динамическая страница. ибо она формируется на стороне сервера из информации (предположительно из базы данных) и файла шаблона, который покрывает подобные отображения рейтингов игроков по разным критериям. Beautiful Soup не умеет запускать js скрипты, однако, в некоторых случаях это можно компенсировать исследовательской работой и шевелением мозгов. именно об этом данное видео

    • @snake--
      @snake-- 3 роки тому +1

      Я так понимаю, для выполнения js запросов обязательно нужен движок браузера? нет ли библиотеки, которая умеет это делать из коробки?
      Вопрос возник не просто так - наткнулся на сайт, где для получения данных используется сложные post запрос с динамическим телом, и не хотелось бы пожизненно обслуживать такой парсинг.

    • @SweetCoder
      @SweetCoder  3 роки тому +3

      @@snake-- вопрос не праздный. действительно было бы круто иметь такой инструмент. это сократило бы очень много времени и нервов. не исключаю, что есть какие-то библиотеки, которые способны удерживать соединение и эмитировать работу браузера. но мне они не известны. пока что....

    • @_Rmmun
      @_Rmmun 3 роки тому +3

      @@snake-- Возможно тебе нужна библиотека selenium

    • @user-wf3jt4yx4u
      @user-wf3jt4yx4u 3 роки тому +1

      @@snake-- selenium умеет эмулировать запуск JavaScript кода, но селениум это не bs :)

  • @Hacking-NASSA-with-HTML
    @Hacking-NASSA-with-HTML Рік тому

    Здравствуйте, я очень извиняюсь за возможно тупой вопрос, а может парсер - работать в режиме event listener🤔?
    Чтобы "поселить" парсер на форум, и чтобы парсер сообщал о наиболее активных темах, типа "на ветке велосипеды за последний час появилось 9 сообщений". Как такое сделать 🤔?

  • @artsirenko7076
    @artsirenko7076 Рік тому

    а какой дедлайн для следующего видео?

  • @picassos3017
    @picassos3017 3 роки тому +1

    Спасибо. Но даже в многостраничных списках есть хоть какие-то признаки страниц. А как быть, если страница сразу не выходит, а появляется только часть? Остальная часть списка появляется только при скроллинге Например это видно на просмотре членов групп в "одноклассниках" и "вконтакне

    • @SweetCoder
      @SweetCoder  3 роки тому

      никак. скрапер не может заскрапить то, чего ещё нет, что появляется после ajax-запроса отправленного после скролла страницы. в этом и заключается работа программиста... 😜

    • @f4ke543
      @f4ke543 Рік тому

      через риквест можно такое организовать, просто менять значение оффсета

  • @andrew_z.
    @andrew_z. 3 роки тому +1

    а если в процессе обработки страниц данные в БД изменятся (например какая-то запись перейдёт с последней страницы на первую). как гарантировать обработку всех записей?

    • @SweetCoder
      @SweetCoder  3 роки тому

      если коротко - то никак. для волатильных данных имеет смысл запускать считывание как можно чаще, учитывая предрасположенность данных к изменяемости

    • @andrew_z.
      @andrew_z. 3 роки тому

      @@SweetCoder повторные считывания - это понятно. проблема в том что во время считывания можно пропустить данные: например если одна запись с первой страницы удалилась, при считывании очередной страницы мы потеряем одну запись (она сдвинулась на предыдущую страницу).

    • @SweetCoder
      @SweetCoder  3 роки тому

      @@andrew_z. это понятно, но волшебных палочек ещё не придумали

  • @artsirenko7076
    @artsirenko7076 Рік тому

    Специально удалил код с описания, чтобы больше просмотров было?

  • @user-id8ur4fu7p
    @user-id8ur4fu7p 2 роки тому +4

    А как сделать так, что бы парсить сообщения с чата? То есть как парсить сообщение которые уже есть я знаю, а вот как сделать, что бы оно в режиме реального времени парсило каждое новое сообщение?

  • @user-to1yg2lo7z
    @user-to1yg2lo7z 3 роки тому +1

    У меня вопрос, а как сложно запарсить например алиэкспер, при этом получив url картинки товара, его описание и цену?

    • @SweetCoder
      @SweetCoder  3 роки тому

      вообще не сложно. и картинки, и описание, и цена - всё парсится без проблем

    • @user-to1yg2lo7z
      @user-to1yg2lo7z 3 роки тому

      @@SweetCoder прикол в том что после начала парсинга, меня перекидывает на страницу с капчей, такое чувство что Алик просто блокирует парсинг

    • @SweetCoder
      @SweetCoder  3 роки тому

      ну у тебя два варианта: либо найти способ обойти капчу, либо сдаться

    • @user-to1yg2lo7z
      @user-to1yg2lo7z 3 роки тому

      @@SweetCoder логично

  • @b2b2tery57
    @b2b2tery57 3 роки тому +1

    спасибо! Не подскажите а как парсить олх и авито??

    • @SweetCoder
      @SweetCoder  3 роки тому

      на здоровье. парсинг барахолок, онлайн-магазинов да и вообще любых сайтов принципиально ничем не отличается. всё то же самое.

    • @b2b2tery57
      @b2b2tery57 3 роки тому

      @@SweetCoder наверное! Но вытащить из олх номер телефона не удается с помощью bs4 . Там какая то защита

  • @Pivaaqee
    @Pivaaqee 3 роки тому

    Здравствуйте. А как парсить такие сайты? - ru.tradingview.com/chart/
    В них нет возможности так легко прыгать, элементарно правая кнопка мыши работает по другому.

    • @SweetCoder
      @SweetCoder  3 роки тому +1

      смотря какая информация нужна. конкретизируй вопрос.
      "В них нет возможности так легко прыгать" - не уверен, что понимаю о каких прыжках идет речь.
      "элементарно правая кнопка мыши работает по-другому" - а причем правая кнопка мыши к парсингу текстовых данных?

  • @agilitytrade
    @agilitytrade 2 роки тому +1

    Я думал только меня прет от парсинга))

    • @SweetCoder
      @SweetCoder  2 роки тому

      иногда бывает очень полезно владеть таким навыком

  • @tohachannel5621
    @tohachannel5621 2 роки тому

    если что ссылка на последнюю страницу тоже содержит номер последней страницы:)

  • @mcolegon
    @mcolegon 2 роки тому +1

    Это всё конечно хорошо, но никто не приводит примеров как парсить aspx сайты.

    • @SweetCoder
      @SweetCoder  2 роки тому

      да ровно также, как и все остальные

  • @nikitaermolenko7813
    @nikitaermolenko7813 Рік тому

    Как спарсить Яндекс Дзен?? Он бля особенный какой-то