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

  Переглядів 13,224

The ParseHub

The ParseHub

9 місяців тому

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

КОМЕНТАРІ: 107
@user-dr4zl5xh7z
@user-dr4zl5xh7z 7 місяців тому
Большое спасибо за хороший пример по playwright! И отдельное спасибо за то, что не спешишь никуда, когда объясняешь. Очень хорошо объясняешь в теме автоматизации и парсинга, приятно слушать. Желаю успехов)
@EvgeniySakharov
@EvgeniySakharov 9 місяців тому
Playwright год назад юзал. Информации на русском вообще не было. Индусов смотрел. И по SeleniumBase на русском только Ваше видео. Так что у Вас работы не початый край. ))) Спасибо. Как всегда, отличный контент. Да еще и ООП! Евгений.
@the_parse_hub
@the_parse_hub 9 місяців тому
Спасибо, по Playwright на русском действительно очень мало информации, нужно исправлять
@Vladimir_F609
@Vladimir_F609 8 місяців тому
Автору респект!!! Огромное спасибо за видос! Мотивирует😊 Однозначно за курс по Playwright
@iswearican__
@iswearican__ 6 місяців тому
однозначно хотим видеть курс по playwright
@user-oe8cu9nr3l
@user-oe8cu9nr3l 5 місяців тому
Спасибо, дружище! Не все успеваешь посмотреть новое и проверить. Такие видео крайне полезны! лайк и подписка!
@user-op9yy3ky8h
@user-op9yy3ky8h 9 місяців тому
Хотим увидеть курс,и поддержим.
@the_parse_hub
@the_parse_hub 9 місяців тому
Курс уже в разработке. Хочется выпустить сразу весь, чтобы всем было удобно. В связи с нехваткой времени, не могу точно сказать когда он будет готов
@alexkooper9467
@alexkooper9467 7 місяців тому
Спасибо большое автору, объясняет доходчиво, однозначно лайк.
@dimasdimas4913
@dimasdimas4913 6 місяців тому
Познавательное видео.Ждем продолжение.
@user-oe8cu9nr3l
@user-oe8cu9nr3l 5 місяців тому
Поставил тебе еще на гитхабе звезд! продолжай в том же духе! будем смотреть :)
@alexxlub
@alexxlub 4 місяці тому
Спасибо за видео!
@user-eq6hu2mx9b
@user-eq6hu2mx9b 5 місяців тому
Просто супер
@KevinJones-ty5hg
@KevinJones-ty5hg 9 місяців тому
Спасибо за видео. Оставляю комментарий для того, чтобы отблагодарить автора видео, а также для того, чтобы поддержать канал! Надеюсь, символов в комментарии достаточно, чтобы ютуб его засчитал и начал больше продвигать видос xD
@the_parse_hub
@the_parse_hub 9 місяців тому
Спасибо!
@ii3246
@ii3246 6 місяців тому
спасибо. норм тема.)))
@yagohush7414
@yagohush7414 4 місяці тому
хотим увидеть курс по плейрайт!!!
@shokavo2205
@shokavo2205 9 місяців тому
Отличное образовательное видео 👍
@user_alex_
@user_alex_ 3 місяці тому
👍👍👍👍👍👍👍👍
@user_alex_
@user_alex_ 3 місяці тому
👍👍👍👍👍👍👍👍👍👍👍👍
@englishforfamily
@englishforfamily 5 місяців тому
Ваш канал и видео просто супер💪👍👍 подскажите пожалуйста что бы сработал кусочек кода JavaScript, весь JS нужно установить?? А то что то не срабатывает прокрутка страницы
@r1-yzf216
@r1-yzf216 3 місяці тому
сильно ))
@user-uj5oq2vv4f
@user-uj5oq2vv4f 9 місяців тому
Как всегда топчик контент 👍
@duckandcover0
@duckandcover0 9 місяців тому
Спасибо за видео. Как вы говорили, возможно эмулировать андройд,где можно ознакомиться с подобным функционалом,буду благодарен
@the_parse_hub
@the_parse_hub 9 місяців тому
Спасибо! Насчет эмуляции можно подробнее почитать здесь: playwright.dev/python/docs/emulation
@duckandcover0
@duckandcover0 9 місяців тому
@@the_parse_hub Как понимаю речь идёт только эмуляции браузера,а как парсить приложения для которых нет реализации в браузере
@user-mc9er3zb6p
@user-mc9er3zb6p 8 місяців тому
Здравствуйте, а будут видео по Pytest?
@the_parse_hub
@the_parse_hub 8 місяців тому
В разработке курс по playwrite, pytest там тоже рассмотрим
@user-fp6hf3wi6c
@user-fp6hf3wi6c 9 місяців тому
Крутое видео, но почему ты xpath не пользуешься, например модно было находить имя продавца?
@the_parse_hub
@the_parse_hub 9 місяців тому
Спасибо! Насчет xpath - это тоже не всегда панацея, но в данном случае я сделал это специально
@sdv75
@sdv75 9 місяців тому
Новый контекст это по сути новый профиль? К нему можно подвязать куки и прокси? Не згаете есть ли к этой библиотеке что-то типа как selenium-stealth?
@the_parse_hub
@the_parse_hub 9 місяців тому
Насчет контекст=профиль верно. Насчет stealth не подскажу, раньше у меня playwright нормально работал на сайте с cloudflare и потребности в stealth не было, как сейчас не знаю, это нужно пробовать
@AlexRootx
@AlexRootx 8 місяців тому
Привет, а как прокинуть опции в браузер, например, флаг "--start-maximized", чтобы развернуть его на весь экран??? За работу лайк однозначно, так держать!!!
@the_parse_hub
@the_parse_hub 8 місяців тому
Спасибо! Это можно сделать при добавлении контекста, к примеру так: self.context = browser.new_context(viewport={"width": 1920, "height": 1080})
@AlexRootx
@AlexRootx 8 місяців тому
Спасибо тоже!@@the_parse_hub
@sin37332
@sin37332 8 місяців тому
Что вы сделали, чтобы убрать лишние окна в IDE на 26:30? И ещё у меня postman не разрешает javascript, поэтому я не могу посмотреть ответ ozon. Как у вас получилось? Заранее спасибо за ответ
@the_parse_hub
@the_parse_hub 8 місяців тому
Лишние окна в ide убрались на монтаже, никакой магии. А насчет postman, где там javascript? Мы просто посылаем какой-то запрос, не более этого
@sin37332
@sin37332 8 місяців тому
@@the_parse_hub вы удалили комментарий?
@marchemilkazzz9148
@marchemilkazzz9148 10 днів тому
Хочется увидеть playwright c прокси
@rafaelrafael685
@rafaelrafael685 5 місяців тому
Борода.
@foquen9649
@foquen9649 8 місяців тому
Добрый день, сделал все как на видео, но при нажатии на кнопку поиска вылезает капча. Ставил разную задержку, тайм слип и тд. Не помогает. В принципе, могу и без поиска обойтись, т.е. по прямой ссылке, но хочется все-таки с поиском. Как исправить?
@the_parse_hub
@the_parse_hub 8 місяців тому
Почти все сайты дико не любят когда кто-то парсит результаты поиска, есть такой момент. Как это обойти в данном случае: для начала я бы установил какой-то нормальный юзерагент, если не поможет - попробуйте установить форк playwright, который по идее должен не палиться github.com/QIN2DIM/undetected-playwright Я его еще ни разу не устанавливал, так что с подсказать больше по нему ничего не смогу
@GolosPro
@GolosPro 9 місяців тому
Подскажи как ты сохраняешь сессию пользователя при работе с библиотекой? куки в коде не используешь, но при запуске твой акк всегда остается автоматизированным, спасибо
@the_parse_hub
@the_parse_hub 9 місяців тому
У меня в видео был открыт ozon в моём обычном Chrome, я там был залогинен и показывал примеры. А при запуске скрипта открывался другой Chrome, там я не авторизован. Но авторизация в playwright работает просто: # Сохранить storage = context.storage_state(path="state.json") # Загрузить context = browser.new_context(storage_state="state.json")
@GolosPro
@GolosPro 9 місяців тому
@@the_parse_hub Работает!!!! :)
@user-mc7vv7iy3i
@user-mc7vv7iy3i 3 місяці тому
пока нахожусь на 15 минуте ролика как мне кажется, перед тем, как что то вводить, лучше всегда сначала использовать метод .click(), иначе есть риск, что во время исполнения скрипта текст не введется полностью. Я вот сейчас пытаюсь с помощью скрипта входить в админку в вордпрессе и без .click() у меня через раз логин полностью прописывается
@the_parse_hub
@the_parse_hub 3 місяці тому
Частично согласен, но здесь всё зависит уже от конкретного сайта
@MrYoru
@MrYoru Місяць тому
Здравствуй! А у тебя есть Дискорд сервер? Было бы хорошо и удобно спрашивать там вопросы по видео
@the_parse_hub
@the_parse_hub 28 днів тому
нет, нету
@MrYoru
@MrYoru 26 днів тому
@@the_parse_hub А вы планируете сделать?
@the_parse_hub
@the_parse_hub 26 днів тому
@@MrYoru Пока нет, по возможности стараюсь отвечать в комментариях, на дискорд просто не хватит времени
@netcattop
@netcattop 9 місяців тому
Погнали на джаве, напишешь парсер)))
@netcattop
@netcattop 9 місяців тому
Даже интересно, получится ли это у питониста
@the_parse_hub
@the_parse_hub 9 місяців тому
Что к чему?
@user-qu6dj9tm6w
@user-qu6dj9tm6w 8 місяців тому
Спасибо автору за отличные видео. Скажите, кто-нибудь пробовал парсить Яндекс маркет? Помогите, пожалуйста, советом у кого получилось обходить капчу(
@the_parse_hub
@the_parse_hub 8 місяців тому
Я еще не пробовал
@dmitrymorozov3038
@dmitrymorozov3038 6 місяців тому
может вместо enumerate просто срез сделать
@djbenzin36
@djbenzin36 4 місяці тому
Интересно как он в плане оставления отпечатков, хочу автоматизировать одну весч, но за это банят) Пробовал на селениуме, через сутки забанили )
@the_parse_hub
@the_parse_hub 4 місяці тому
По отпечаткам тот же селениум. Лучше использовать форки undetected_chromedriver или undetected_playwright, ну и не забывать, что банить могут и по другим признакам, например один ip, слишком быстрые действия, работа 24х7 и т.д
@djbenzin36
@djbenzin36 4 місяці тому
@@the_parse_hub спасибо за совет
@mikala1158Qqq
@mikala1158Qqq 6 місяців тому
Дружище, что ты со списком ссылок делаешь… Есть прекрасный способ, называется срез, тогда код бы выглядел еще лаконичнее: for link in links[:5]: … А так спасибо за видео
@the_parse_hub
@the_parse_hub 6 місяців тому
Я уже сам не понимаю, почему я сделал именно так)
@user-zu2je2qm1g
@user-zu2je2qm1g 5 місяців тому
тоже резало глаз, хотел написать, а потом твой комментарий увидел)
@nokeppivanoff4353
@nokeppivanoff4353 7 місяців тому
при запуске вылетает ошибка, 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 7 місяців тому
Не уверен, но возможно у Вас установлен playwright глобально и локально и он путается в версиях браузера. Попробуйте полностью его удалить и установить заново в виртуальном окружении
@nokeppivanoff4353
@nokeppivanoff4353 7 місяців тому
​@@the_parse_hub переустановка помогла, но теперь озон включает капчу после поиска
@the_parse_hub
@the_parse_hub 7 місяців тому
@@nokeppivanoff4353 да, такое бывает
@nokeppivanoff4353
@nokeppivanoff4353 7 місяців тому
@@the_parse_hubаха. так значит ваше видео тут бестолку, т.к. спарсить озон не получается, решений у вас нет. Блокировку обойти решения нет. Ну и смысл ?
@the_parse_hub
@the_parse_hub 7 місяців тому
@@nokeppivanoff4353 аха, если Вы до сих пор не поняли, то я объясню: решения в парсинге не бывают вечными (особенно на таких сайтах как Авито, Ямаркет, Озон и пр.), а требуют постоянной доработки и изменений. Это постоянная игра в кошки-мышки. Также выходят новые версии библиотек, убираются одни методы, добавляются другие (как раз этот случай с Playwright). Именно поэтому разные компании, которые занимаются парсингом, продают как правило парсинг как услугу, а не как готовый продукт. Как-то так, надеюсь доступно объяснил
@konstantin_uphimtsev
@konstantin_uphimtsev 9 місяців тому
Привет. Подскажи может пропустил. Почему тебя не блочит клаудфлэр?
@the_parse_hub
@the_parse_hub 9 місяців тому
Привет! Конкретно на Ozon проверка капчи cloudflare произойдет, если мы сделаем много действий за короткий промежуток времени
@IT_channel-py3nd
@IT_channel-py3nd Місяць тому
Добрый день! Можно ли создать такой парсер на сервере без графического интерфейса?
@the_parse_hub
@the_parse_hub Місяць тому
Имеется ввиду наверное не создать, а запустить. Можно, headless там есть
@IT_channel-py3nd
@IT_channel-py3nd Місяць тому
@@the_parse_hub Да, именно запустить. Понял, спасибо!
@user-qi8tp1bs2g
@user-qi8tp1bs2g 6 місяців тому
Есть ощущение, что слушаю Олега Молчанова
@user-ny9ux9ss8n
@user-ny9ux9ss8n 5 місяців тому
Кто это такой ??
@user-qi8tp1bs2g
@user-qi8tp1bs2g 5 місяців тому
@@user-ny9ux9ss8n я когда-то не знал питон, и его видео заложили базу.Один из лучших, в этой области.
@user-op9yy3ky8h
@user-op9yy3ky8h 9 місяців тому
Добрый день.Благодарю за видео.Но почему то страница не загружается.Показывает что ошибок ноль и все, браузер не открывается.Что это может быть?
@the_parse_hub
@the_parse_hub 9 місяців тому
Попробуйте запустить в debug режиме и посмотреть где проблема, если не умеете - расставьте несколько вспомогательных print в коде
@user-op9yy3ky8h
@user-op9yy3ky8h 9 місяців тому
@@the_parse_hub ок
@Crystal94Glass
@Crystal94Glass 2 місяці тому
На моменте, когда нужно вывести 5 ссылок отпал. Вроде хорошее знание python, но такой костыль. Вы собрали СПИСОК из ссылок, в чем проблема было сделать срез списка? for link in links[:5] Все.
@the_parse_hub
@the_parse_hub 2 місяці тому
Не Вы один это заметили) Косяк признаю, видимо у меня была мысль что-то сделать там еще или по-другому, хз, ничего уже не поменять
@user_alex_
@user_alex_ 3 місяці тому
Нашел press('Enter')
@erikkaramian8005
@erikkaramian8005 4 місяці тому
А если мне сразу озон выдаёт проверку на то человек ли я и потом ошибку ВПН выдаёт, то что делать тогда ? 14:35
@the_parse_hub
@the_parse_hub 4 місяці тому
Озону не нравится парсинг. Попробуйте увеличить паузы в скрипте, месяц назад это помогло, но на самом деле нужно искать другие способы парсинга - этот слишком нестабильный
@erikkaramian8005
@erikkaramian8005 4 місяці тому
@@the_parse_hub да помогло запускать браузер с одним дополнительным аргументом и дальше по видео повторилось все легко
@the_parse_hub
@the_parse_hub 4 місяці тому
@@erikkaramian8005 вот и отлично
@user-ki3dy4gh6b
@user-ki3dy4gh6b 3 місяці тому
@@erikkaramian8005 не подскажите что добавиили?
@AntonYatsenkoRU
@AntonYatsenkoRU 7 місяців тому
Спойлер, чтобы не тратили зря своё время. Это уже не актуально. Оно так не работает уже в случае с ozon((. Но автору спасибо. В образовательных целях было полезно)) Лайк
@the_parse_hub
@the_parse_hub 7 місяців тому
Я прекрасно понимаю, что такого вида парсеры не могут работать вечно, да и писался он больше в учебных целях, но ради интереса решил проверить сегодня его работоспособность: 1) После нескольких пробных запусков понял, что нужно добавить паузу перед тем как писать в поле поиска, добавил простой time.sleep(5) и всё заработало 2) Есть проблемы с чтением имени продавца, но и там не хватает обычной паузы 3) 90% проблем возникает из-за того, что в данном видео использовался playwright==1.36.0, сейчас это уже устаревшая версия, но никто не мешает установить именно её 4) Помните, что это не готовый рабочий продукт, а всего лишь что-то вроде прототипа и писалось для демонстрации работы playwright в реальных условия
@devracoon
@devracoon 5 місяців тому
Зачем парсить хтмл если можно слушать сеть и поймать запрос к апи и парсить удобный json?
@ami_nolove
@ami_nolove 2 місяці тому
привет, напишешь мне парсер на озон? я бабки скину
@the_parse_hub
@the_parse_hub 2 місяці тому
Привет. Пиши на почту что конкретнее нужно. Почта в описании
@konstantin_uphimtsev
@konstantin_uphimtsev 9 місяців тому
Чтобы селениум не блочили нужны танцы с бубнами.
@the_parse_hub
@the_parse_hub 9 місяців тому
нужно всего-лишь установить stealth или undetected_chromedriver, вот и все танцы
@konstantin_uphimtsev
@konstantin_uphimtsev 9 місяців тому
@@the_parse_hub к сожалению есть абсолютно злые сайты и это не поможет
@user-sb6ke7nm8j
@user-sb6ke7nm8j 9 місяців тому
@@the_parse_hub не помогает ни stealth, ни undetected_chrome. Cloudflare срабатывает сразу на старте страницы, никаких действий еще не сделал. А undetected_chrome перестал проходить какие-либо защиты еще пару недель назад, до этого cloudflare обходил исправно. UPD: после корректировки аргументов, селениум stealth обходит cloudflare при старте страницы.
@rucat284
@rucat284 4 місяці тому
ozon уже не попарсишь
@the_parse_hub
@the_parse_hub 4 місяці тому
Таким способом - скорее всего уже не получится. Но вообще спарсить можно всё - весь вопрос в доступных ресурсах
@andreylisogor3532
@andreylisogor3532 3 місяці тому
Подскажите, можно им парсить инстаграм? Использую selenium и bs4 для парсинга количествоюа подписчиков. Но сайт меня блочит через не которое количество повторений
@the_parse_hub
@the_parse_hub 3 місяці тому
Для парсинга защищенных сайтов используйте лучше undetected_playwright, ну и не забывайте, что банить сайты могут и по поведению
Повістки у Києві: «Яке право вони мають забирати всіх мужиків?» #війна #мобілізація #військові
00:41
Слідство.Інфо | Розслідування, репортажі, викриття
Переглядів 1,6 млн
Playwright - самый современный аналог selenium
14:57
Login and Scrape Data with Playwright and Python
10:22
John Watson Rooney
Переглядів 96 тис.
THIS is Playwrights BEST Feature for Web Automation
9:45
John Watson Rooney
Переглядів 35 тис.
Используем ChatGPT API бесплатно с Python
13:51
The ParseHub
Переглядів 158 тис.
Знакомимся с Playwright на Python - документация, эксперименты, первые шаги
1:43:45