PLAYWRIGHT: пишем парсер OZON

Sdílet
Vložit
  • čas přidán 19. 07. 2023
  • Сегодня будем писать парсер для популярного маркетплейса OZON на Python используя библиотеку Playwright.
    Playwright - это универсальная библиотека, которая обеспечивает удобные инструменты для автоматизации браузера. Мы научимся находить элементы на веб-странице, выполнять клики, ожидать появления элементов, вводить данные и многое другое.
    Ссылка на документацию: playwright.dev/python/docs/intro
    Ссылка на код из видео: github.com/Duff89/ozon_parser
    Приватные прокси за 99 руб: proxy6.net/?r=54545
    Купон на скидку: SdSq8wCwJA
    Приватные прокси на короткий срок и большим выбором гео:
    proxyline.net/?ref=212089
    Купон на скидку: EYvdLcmgSy4tUcBP5uk
    Поддержать канал:
    yoomoney.ru/to/410014382689862
    или
    2204 1201 0103 5539
    Контакт для связи: sergeichopolovich1989@gmail.com
    #python #parsing #scraping #playwright #ozon #tutorial

Komentáře • 108

  • @EvgeniySakharov
    @EvgeniySakharov Před rokem +11

    Playwright год назад юзал. Информации на русском вообще не было. Индусов смотрел. И по SeleniumBase на русском только Ваше видео. Так что у Вас работы не початый край. ))) Спасибо. Как всегда, отличный контент. Да еще и ООП!
    Евгений.

    • @the_parse_hub
      @the_parse_hub  Před rokem +2

      Спасибо, по Playwright на русском действительно очень мало информации, нужно исправлять

  • @user-dr4zl5xh7z
    @user-dr4zl5xh7z Před 10 měsíci +1

    Большое спасибо за хороший пример по playwright! И отдельное спасибо за то, что не спешишь никуда, когда объясняешь. Очень хорошо объясняешь в теме автоматизации и парсинга, приятно слушать. Желаю успехов)

  • @Vladimir_F609
    @Vladimir_F609 Před 10 měsíci +3

    Автору респект!!! Огромное спасибо за видос! Мотивирует😊 Однозначно за курс по Playwright

  • @user-oe8cu9nr3l
    @user-oe8cu9nr3l Před 8 měsíci +1

    Спасибо, дружище! Не все успеваешь посмотреть новое и проверить. Такие видео крайне полезны! лайк и подписка!

  • @user-op9yy3ky8h
    @user-op9yy3ky8h Před 11 měsíci +9

    Хотим увидеть курс,и поддержим.

    • @the_parse_hub
      @the_parse_hub  Před 11 měsíci +7

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

  • @iswearican__
    @iswearican__ Před 8 měsíci +2

    однозначно хотим видеть курс по playwright

  • @alexkooper9467
    @alexkooper9467 Před 9 měsíci +1

    Спасибо большое автору, объясняет доходчиво, однозначно лайк.

  • @user-oe8cu9nr3l
    @user-oe8cu9nr3l Před 8 měsíci +2

    Поставил тебе еще на гитхабе звезд! продолжай в том же духе! будем смотреть :)

  • @dimasdimas4913
    @dimasdimas4913 Před 9 měsíci

    Познавательное видео.Ждем продолжение.

  • @KevinJones-ty5hg
    @KevinJones-ty5hg Před rokem +3

    Спасибо за видео. Оставляю комментарий для того, чтобы отблагодарить автора видео, а также для того, чтобы поддержать канал! Надеюсь, символов в комментарии достаточно, чтобы ютуб его засчитал и начал больше продвигать видос xD

  • @alexxlub
    @alexxlub Před 7 měsíci

    Спасибо за видео!

  • @shokavo2205
    @shokavo2205 Před rokem +2

    Отличное образовательное видео
    👍

  • @user-eq6hu2mx9b
    @user-eq6hu2mx9b Před 8 měsíci

    Просто супер

  • @ii3246
    @ii3246 Před 8 měsíci

    спасибо. норм тема.)))

  • @user-uj5oq2vv4f
    @user-uj5oq2vv4f Před rokem +3

    Как всегда топчик контент 👍

  • @yagohush7414
    @yagohush7414 Před 7 měsíci

    хотим увидеть курс по плейрайт!!!

  • @r1-yzf216
    @r1-yzf216 Před 6 měsíci

    сильно ))

  • @englishforfamily
    @englishforfamily Před 8 měsíci

    Ваш канал и видео просто супер💪👍👍 подскажите пожалуйста что бы сработал кусочек кода JavaScript, весь JS нужно установить?? А то что то не срабатывает прокрутка страницы

  • @user_alex_
    @user_alex_ Před 6 měsíci

    👍👍👍👍👍👍👍👍

  • @user_alex_
    @user_alex_ Před 6 měsíci

    👍👍👍👍👍👍👍👍👍👍👍👍

  • @duckandcover0
    @duckandcover0 Před rokem +1

    Спасибо за видео.
    Как вы говорили, возможно эмулировать андройд,где можно ознакомиться с подобным функционалом,буду благодарен

    • @the_parse_hub
      @the_parse_hub  Před rokem +1

      Спасибо! Насчет эмуляции можно подробнее почитать здесь:
      playwright.dev/python/docs/emulation

    • @duckandcover0
      @duckandcover0 Před rokem

      @@the_parse_hub Как понимаю речь идёт только эмуляции браузера,а как парсить приложения для которых нет реализации в браузере

  • @sdv75
    @sdv75 Před rokem +1

    Новый контекст это по сути новый профиль? К нему можно подвязать куки и прокси? Не згаете есть ли к этой библиотеке что-то типа как selenium-stealth?

    • @the_parse_hub
      @the_parse_hub  Před rokem +1

      Насчет контекст=профиль верно.
      Насчет stealth не подскажу, раньше у меня playwright нормально работал на сайте с cloudflare и потребности в stealth не было, как сейчас не знаю, это нужно пробовать

  • @marchemilkazzz9148
    @marchemilkazzz9148 Před 3 měsíci

    Хочется увидеть playwright c прокси

  • @user-fp6hf3wi6c
    @user-fp6hf3wi6c Před rokem

    Крутое видео, но почему ты xpath не пользуешься, например модно было находить имя продавца?

    • @the_parse_hub
      @the_parse_hub  Před rokem +1

      Спасибо!
      Насчет xpath - это тоже не всегда панацея, но в данном случае я сделал это специально

  • @GolosPro
    @GolosPro Před rokem

    Подскажи как ты сохраняешь сессию пользователя при работе с библиотекой? куки в коде не используешь, но при запуске твой акк всегда остается автоматизированным, спасибо

    • @the_parse_hub
      @the_parse_hub  Před rokem +2

      У меня в видео был открыт ozon в моём обычном Chrome, я там был залогинен и показывал примеры. А при запуске скрипта открывался другой Chrome, там я не авторизован.
      Но авторизация в playwright работает просто:
      # Сохранить
      storage = context.storage_state(path="state.json")
      # Загрузить
      context = browser.new_context(storage_state="state.json")

    • @GolosPro
      @GolosPro Před rokem

      @@the_parse_hub Работает!!!! :)

  • @foquen9649
    @foquen9649 Před 11 měsíci +1

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

    • @the_parse_hub
      @the_parse_hub  Před 11 měsíci +2

      Почти все сайты дико не любят когда кто-то парсит результаты поиска, есть такой момент.
      Как это обойти в данном случае: для начала я бы установил какой-то нормальный юзерагент, если не поможет - попробуйте установить форк playwright, который по идее должен не палиться github.com/QIN2DIM/undetected-playwright
      Я его еще ни разу не устанавливал, так что с подсказать больше по нему ничего не смогу

  • @sin37332
    @sin37332 Před 11 měsíci

    Что вы сделали, чтобы убрать лишние окна в IDE на 26:30? И ещё у меня postman не разрешает javascript, поэтому я не могу посмотреть ответ ozon. Как у вас получилось? Заранее спасибо за ответ

    • @the_parse_hub
      @the_parse_hub  Před 11 měsíci

      Лишние окна в ide убрались на монтаже, никакой магии. А насчет postman, где там javascript? Мы просто посылаем какой-то запрос, не более этого

    • @sin37332
      @sin37332 Před 11 měsíci

      @@the_parse_hub вы удалили комментарий?

  • @user-qi8tp1bs2g
    @user-qi8tp1bs2g Před 8 měsíci +1

    Есть ощущение, что слушаю Олега Молчанова

    • @user-ny9ux9ss8n
      @user-ny9ux9ss8n Před 8 měsíci

      Кто это такой ??

    • @user-qi8tp1bs2g
      @user-qi8tp1bs2g Před 8 měsíci

      @@user-ny9ux9ss8n я когда-то не знал питон, и его видео заложили базу.Один из лучших, в этой области.

  • @user-mc9er3zb6p
    @user-mc9er3zb6p Před 11 měsíci

    Здравствуйте, а будут видео по Pytest?

    • @the_parse_hub
      @the_parse_hub  Před 11 měsíci +3

      В разработке курс по playwrite, pytest там тоже рассмотрим

  • @AlexRootx
    @AlexRootx Před 10 měsíci +1

    Привет, а как прокинуть опции в браузер, например, флаг "--start-maximized", чтобы развернуть его на весь экран??? За работу лайк однозначно, так держать!!!

    • @the_parse_hub
      @the_parse_hub  Před 10 měsíci +1

      Спасибо!
      Это можно сделать при добавлении контекста, к примеру так:
      self.context = browser.new_context(viewport={"width": 1920, "height": 1080})

    • @AlexRootx
      @AlexRootx Před 10 měsíci

      Спасибо тоже!@@the_parse_hub

  • @konstantin_uphimtsev
    @konstantin_uphimtsev Před rokem

    Привет. Подскажи может пропустил. Почему тебя не блочит клаудфлэр?

    • @the_parse_hub
      @the_parse_hub  Před rokem

      Привет! Конкретно на Ozon проверка капчи cloudflare произойдет, если мы сделаем много действий за короткий промежуток времени

  • @rafaelrafael685
    @rafaelrafael685 Před 7 měsíci

    Борода.

  • @djbenzin36
    @djbenzin36 Před 7 měsíci

    Интересно как он в плане оставления отпечатков, хочу автоматизировать одну весч, но за это банят) Пробовал на селениуме, через сутки забанили )

    • @the_parse_hub
      @the_parse_hub  Před 6 měsíci

      По отпечаткам тот же селениум. Лучше использовать форки undetected_chromedriver или undetected_playwright, ну и не забывать, что банить могут и по другим признакам, например один ip, слишком быстрые действия, работа 24х7 и т.д

    • @djbenzin36
      @djbenzin36 Před 6 měsíci

      @@the_parse_hub спасибо за совет

  • @netcattop
    @netcattop Před rokem

    Погнали на джаве, напишешь парсер)))

    • @netcattop
      @netcattop Před rokem

      Даже интересно, получится ли это у питониста

    • @the_parse_hub
      @the_parse_hub  Před rokem +1

      Что к чему?

  • @dmitrymorozov3038
    @dmitrymorozov3038 Před 9 měsíci +1

    может вместо enumerate просто срез сделать

  • @user-op9yy3ky8h
    @user-op9yy3ky8h Před rokem

    Добрый день.Благодарю за видео.Но почему то страница не загружается.Показывает что ошибок ноль и все, браузер не открывается.Что это может быть?

    • @the_parse_hub
      @the_parse_hub  Před rokem

      Попробуйте запустить в debug режиме и посмотреть где проблема, если не умеете - расставьте несколько вспомогательных print в коде

    • @user-op9yy3ky8h
      @user-op9yy3ky8h Před rokem

      @@the_parse_hub ок

  • @Verse_Studio
    @Verse_Studio Před 3 měsíci

    Здравствуй! А у тебя есть Дискорд сервер? Было бы хорошо и удобно спрашивать там вопросы по видео

    • @the_parse_hub
      @the_parse_hub  Před 3 měsíci

      нет, нету

    • @Verse_Studio
      @Verse_Studio Před 3 měsíci

      @@the_parse_hub А вы планируете сделать?

    • @the_parse_hub
      @the_parse_hub  Před 3 měsíci

      @@Verse_Studio Пока нет, по возможности стараюсь отвечать в комментариях, на дискорд просто не хватит времени

  • @user-mc7vv7iy3i
    @user-mc7vv7iy3i Před 6 měsíci

    пока нахожусь на 15 минуте ролика
    как мне кажется, перед тем, как что то вводить, лучше всегда сначала использовать метод .click(), иначе есть риск, что во время исполнения скрипта текст не введется полностью. Я вот сейчас пытаюсь с помощью скрипта входить в админку в вордпрессе и без .click() у меня через раз логин полностью прописывается

    • @the_parse_hub
      @the_parse_hub  Před 6 měsíci

      Частично согласен, но здесь всё зависит уже от конкретного сайта

  • @user-qu6dj9tm6w
    @user-qu6dj9tm6w Před 11 měsíci

    Спасибо автору за отличные видео.
    Скажите, кто-нибудь пробовал парсить Яндекс маркет?
    Помогите, пожалуйста, советом у кого получилось обходить капчу(

  • @IT_channel-py3nd
    @IT_channel-py3nd Před 4 měsíci

    Добрый день! Можно ли создать такой парсер на сервере без графического интерфейса?

    • @the_parse_hub
      @the_parse_hub  Před 4 měsíci +1

      Имеется ввиду наверное не создать, а запустить. Можно, headless там есть

    • @IT_channel-py3nd
      @IT_channel-py3nd Před 4 měsíci

      @@the_parse_hub Да, именно запустить. Понял, спасибо!

  • @AntonYatsenkoRU
    @AntonYatsenkoRU Před 9 měsíci +1

    Спойлер, чтобы не тратили зря своё время. Это уже не актуально. Оно так не работает уже в случае с ozon((.
    Но автору спасибо. В образовательных целях было полезно)) Лайк

    • @the_parse_hub
      @the_parse_hub  Před 9 měsíci

      Я прекрасно понимаю, что такого вида парсеры не могут работать вечно, да и писался он больше в учебных целях, но ради интереса решил проверить сегодня его работоспособность:
      1) После нескольких пробных запусков понял, что нужно добавить паузу перед тем как писать в поле поиска, добавил простой time.sleep(5) и всё заработало
      2) Есть проблемы с чтением имени продавца, но и там не хватает обычной паузы
      3) 90% проблем возникает из-за того, что в данном видео использовался playwright==1.36.0, сейчас это уже устаревшая версия, но никто не мешает установить именно её
      4) Помните, что это не готовый рабочий продукт, а всего лишь что-то вроде прототипа и писалось для демонстрации работы playwright в реальных условия

  • @nokeppivanoff4353
    @nokeppivanoff4353 Před 10 měsíci

    при запуске вылетает ошибка, Executable doesn't exist at AppData\Local\ms-playwright\chromium-1076\chrome-win\chrome с предложением запустить команду plawright install. нО это уже сделано было. порывшись в инете, народ пишет, что надо запустить установку npx plawrigth. но к сожалению, пишет что npx имя не распознано. Есть решение ?

    • @the_parse_hub
      @the_parse_hub  Před 10 měsíci

      Не уверен, но возможно у Вас установлен playwright глобально и локально и он путается в версиях браузера. Попробуйте полностью его удалить и установить заново в виртуальном окружении

    • @nokeppivanoff4353
      @nokeppivanoff4353 Před 10 měsíci

      ​@@the_parse_hub переустановка помогла, но теперь озон включает капчу после поиска

    • @the_parse_hub
      @the_parse_hub  Před 10 měsíci

      @@nokeppivanoff4353 да, такое бывает

    • @nokeppivanoff4353
      @nokeppivanoff4353 Před 10 měsíci

      @@the_parse_hubаха. так значит ваше видео тут бестолку, т.к. спарсить озон не получается, решений у вас нет. Блокировку обойти решения нет. Ну и смысл ?

    • @the_parse_hub
      @the_parse_hub  Před 10 měsíci +2

      @@nokeppivanoff4353 аха, если Вы до сих пор не поняли, то я объясню: решения в парсинге не бывают вечными (особенно на таких сайтах как Авито, Ямаркет, Озон и пр.), а требуют постоянной доработки и изменений. Это постоянная игра в кошки-мышки.
      Также выходят новые версии библиотек, убираются одни методы, добавляются другие (как раз этот случай с Playwright).
      Именно поэтому разные компании, которые занимаются парсингом, продают как правило парсинг как услугу, а не как готовый продукт. Как-то так, надеюсь доступно объяснил

  • @mikala1158Qqq
    @mikala1158Qqq Před 8 měsíci +1

    Дружище, что ты со списком ссылок делаешь…
    Есть прекрасный способ, называется срез, тогда код бы выглядел еще лаконичнее:
    for link in links[:5]:

    А так спасибо за видео

    • @the_parse_hub
      @the_parse_hub  Před 8 měsíci

      Я уже сам не понимаю, почему я сделал именно так)

    • @user-zu2je2qm1g
      @user-zu2je2qm1g Před 8 měsíci

      тоже резало глаз, хотел написать, а потом твой комментарий увидел)

  • @Crystal94Glass
    @Crystal94Glass Před 5 měsíci

    На моменте, когда нужно вывести 5 ссылок отпал. Вроде хорошее знание python, но такой костыль.
    Вы собрали СПИСОК из ссылок, в чем проблема было сделать срез списка?
    for link in links[:5]
    Все.

    • @the_parse_hub
      @the_parse_hub  Před 5 měsíci

      Не Вы один это заметили)
      Косяк признаю, видимо у меня была мысль что-то сделать там еще или по-другому, хз, ничего уже не поменять

  • @dicloniusN35
    @dicloniusN35 Před měsícem

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

  • @user_alex_
    @user_alex_ Před 6 měsíci

    Нашел press('Enter')

  • @asmr_codster
    @asmr_codster Před 6 měsíci

    А если мне сразу озон выдаёт проверку на то человек ли я и потом ошибку ВПН выдаёт, то что делать тогда ? 14:35

    • @the_parse_hub
      @the_parse_hub  Před 6 měsíci

      Озону не нравится парсинг. Попробуйте увеличить паузы в скрипте, месяц назад это помогло, но на самом деле нужно искать другие способы парсинга - этот слишком нестабильный

    • @asmr_codster
      @asmr_codster Před 6 měsíci

      @@the_parse_hub да помогло запускать браузер с одним дополнительным аргументом и дальше по видео повторилось все легко

    • @the_parse_hub
      @the_parse_hub  Před 6 měsíci

      @@asmr_codster вот и отлично

    • @user-ki3dy4gh6b
      @user-ki3dy4gh6b Před 5 měsíci

      @@asmr_codster не подскажите что добавиили?

  • @devracoon
    @devracoon Před 8 měsíci

    Зачем парсить хтмл если можно слушать сеть и поймать запрос к апи и парсить удобный json?

  • @ami_nolove
    @ami_nolove Před 5 měsíci +1

    привет, напишешь мне парсер на озон? я бабки скину

    • @the_parse_hub
      @the_parse_hub  Před 5 měsíci

      Привет. Пиши на почту что конкретнее нужно. Почта в описании

  • @konstantin_uphimtsev
    @konstantin_uphimtsev Před rokem

    Чтобы селениум не блочили нужны танцы с бубнами.

    • @the_parse_hub
      @the_parse_hub  Před rokem +1

      нужно всего-лишь установить stealth или undetected_chromedriver, вот и все танцы

    • @konstantin_uphimtsev
      @konstantin_uphimtsev Před rokem +1

      @@the_parse_hub к сожалению есть абсолютно злые сайты и это не поможет

    • @user-sb6ke7nm8j
      @user-sb6ke7nm8j Před rokem

      @@the_parse_hub не помогает ни stealth, ни undetected_chrome. Cloudflare срабатывает сразу на старте страницы, никаких действий еще не сделал. А undetected_chrome перестал проходить какие-либо защиты еще пару недель назад, до этого cloudflare обходил исправно.
      UPD: после корректировки аргументов, селениум stealth обходит cloudflare при старте страницы.

  • @rucat284
    @rucat284 Před 7 měsíci

    ozon уже не попарсишь

    • @the_parse_hub
      @the_parse_hub  Před 7 měsíci

      Таким способом - скорее всего уже не получится. Но вообще спарсить можно всё - весь вопрос в доступных ресурсах

  • @andreylisogor3532
    @andreylisogor3532 Před 6 měsíci

    Подскажите, можно им парсить инстаграм? Использую selenium и bs4 для парсинга количествоюа подписчиков. Но сайт меня блочит через не которое количество повторений

    • @the_parse_hub
      @the_parse_hub  Před 6 měsíci +1

      Для парсинга защищенных сайтов используйте лучше undetected_playwright, ну и не забывайте, что банить сайты могут и по поведению