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

2023 ж. 19 Шіл.
13 499 Рет қаралды

Сегодня будем писать парсер для популярного маркетплейса 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

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

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

    @user-oe8cu9nr3l@user-oe8cu9nr3l6 ай бұрын
  • Автору респект!!! Огромное спасибо за видос! Мотивирует😊 Однозначно за курс по Playwright

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

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

      @the_parse_hub@the_parse_hub9 ай бұрын
  • однозначно хотим видеть курс по playwright

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

    @alexkooper9467@alexkooper94677 ай бұрын
  • Хотим увидеть курс,и поддержим.

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

      @the_parse_hub@the_parse_hub9 ай бұрын
  • Познавательное видео.Ждем продолжение.

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

    @user-oe8cu9nr3l@user-oe8cu9nr3l6 ай бұрын
  • Спасибо за видео!

    @alexxlub@alexxlub4 ай бұрын
  • Отличное образовательное видео 👍

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

    @KevinJones-ty5hg@KevinJones-ty5hg9 ай бұрын
    • Спасибо!

      @the_parse_hub@the_parse_hub9 ай бұрын
  • Просто супер

    @user-eq6hu2mx9b@user-eq6hu2mx9b6 ай бұрын
  • Как всегда топчик контент 👍

    @user-uj5oq2vv4f@user-uj5oq2vv4f9 ай бұрын
  • спасибо. норм тема.)))

    @ii3246@ii32466 ай бұрын
  • хотим увидеть курс по плейрайт!!!

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

    @englishforfamily@englishforfamily5 ай бұрын
  • сильно ))

    @r1-yzf216@r1-yzf2163 ай бұрын
  • 👍👍👍👍👍👍👍👍

    @user_alex_@user_alex_4 ай бұрын
  • 👍👍👍👍👍👍👍👍👍👍👍👍

    @user_alex_@user_alex_4 ай бұрын
  • Хочется увидеть playwright c прокси

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

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

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

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

    @user-fp6hf3wi6c@user-fp6hf3wi6c9 ай бұрын
    • Спасибо! Насчет xpath - это тоже не всегда панацея, но в данном случае я сделал это специально

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

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

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

      @sin37332@sin373329 ай бұрын
  • Здравствуйте, а будут видео по Pytest?

    @user-mc9er3zb6p@user-mc9er3zb6p9 ай бұрын
    • В разработке курс по playwrite, pytest там тоже рассмотрим

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

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

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

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

      @the_parse_hub@the_parse_hub9 ай бұрын
    • @@the_parse_hub Работает!!!! :)

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

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

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

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

      @the_parse_hub@the_parse_hub8 ай бұрын
    • Спасибо тоже!@@the_parse_hub

      @AlexRootx@AlexRootx8 ай бұрын
  • Борода.

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

    @user-qu6dj9tm6w@user-qu6dj9tm6w8 ай бұрын
    • Я еще не пробовал

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

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

      @the_parse_hub@the_parse_hub8 ай бұрын
    • ​@@the_parse_hub переустановка помогла, но теперь озон включает капчу после поиска

      @nokeppivanoff4353@nokeppivanoff43537 ай бұрын
    • @@nokeppivanoff4353 да, такое бывает

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

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

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

    @user-mc7vv7iy3i@user-mc7vv7iy3i3 ай бұрын
    • Частично согласен, но здесь всё зависит уже от конкретного сайта

      @the_parse_hub@the_parse_hub3 ай бұрын
  • Интересно как он в плане оставления отпечатков, хочу автоматизировать одну весч, но за это банят) Пробовал на селениуме, через сутки забанили )

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

      @the_parse_hub@the_parse_hub4 ай бұрын
    • @@the_parse_hub спасибо за совет

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

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

      @the_parse_hub@the_parse_hub9 ай бұрын
    • @@the_parse_hub ок

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

    @mikala1158Qqq@mikala1158Qqq6 ай бұрын
    • Я уже сам не понимаю, почему я сделал именно так)

      @the_parse_hub@the_parse_hub6 ай бұрын
    • тоже резало глаз, хотел написать, а потом твой комментарий увидел)

      @user-zu2je2qm1g@user-zu2je2qm1g6 ай бұрын
  • Привет. Подскажи может пропустил. Почему тебя не блочит клаудфлэр?

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

      @the_parse_hub@the_parse_hub9 ай бұрын
  • Есть ощущение, что слушаю Олега Молчанова

    @user-qi8tp1bs2g@user-qi8tp1bs2g6 ай бұрын
    • Кто это такой ??

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

      @user-qi8tp1bs2g@user-qi8tp1bs2g5 ай бұрын
  • Добрый день! Можно ли создать такой парсер на сервере без графического интерфейса?

    @IT_channel-py3nd@IT_channel-py3nd2 ай бұрын
    • Имеется ввиду наверное не создать, а запустить. Можно, headless там есть

      @the_parse_hub@the_parse_hub2 ай бұрын
    • @@the_parse_hub Да, именно запустить. Понял, спасибо!

      @IT_channel-py3nd@IT_channel-py3nd2 ай бұрын
  • может вместо enumerate просто срез сделать

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

    @MrYoru@MrYoruАй бұрын
    • нет, нету

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

      @MrYoru@MrYoruАй бұрын
    • @@MrYoru Пока нет, по возможности стараюсь отвечать в комментариях, на дискорд просто не хватит времени

      @the_parse_hub@the_parse_hubАй бұрын
  • Погнали на джаве, напишешь парсер)))

    @netcattop@netcattop9 ай бұрын
    • Даже интересно, получится ли это у питониста

      @netcattop@netcattop9 ай бұрын
    • Что к чему?

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

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

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

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

      @the_parse_hub@the_parse_hub7 ай бұрын
  • Нашел press('Enter')

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

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

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

      @erikkaramian8005@erikkaramian80054 ай бұрын
    • @@erikkaramian8005 вот и отлично

      @the_parse_hub@the_parse_hub4 ай бұрын
    • @@erikkaramian8005 не подскажите что добавиили?

      @user-ki3dy4gh6b@user-ki3dy4gh6b3 ай бұрын
  • Зачем парсить хтмл если можно слушать сеть и поймать запрос к апи и парсить удобный json?

    @devracoon@devracoon6 ай бұрын
  • привет, напишешь мне парсер на озон? я бабки скину

    @ami_nolove@ami_nolove2 ай бұрын
    • Привет. Пиши на почту что конкретнее нужно. Почта в описании

      @the_parse_hub@the_parse_hub2 ай бұрын
  • Чтобы селениум не блочили нужны танцы с бубнами.

    @konstantin_uphimtsev@konstantin_uphimtsev9 ай бұрын
    • нужно всего-лишь установить stealth или undetected_chromedriver, вот и все танцы

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

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

      @user-sb6ke7nm8j@user-sb6ke7nm8j9 ай бұрын
  • ozon уже не попарсишь

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

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

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

      @the_parse_hub@the_parse_hub3 ай бұрын
KZhead