Парсинг на Python, Selenium и BS4 | Выполняем заказ на фрилансе | Парсинг динамического сайта
Вставка
- Опубліковано 19 вер 2021
- Фриланс. Обучение (Web-Scraping) веб парсингу на Python. В данном видео выполняем заказ взятый на фрилансе по парсингу динамического сайта. Выполняем задачу с помощью библиотек Selenium, Beautifulsoup, requests, urllib и регулярных выражений. С записью данных в JSON файл.
🔥 Доступ в приват | Поддержать проект:
boosty.to/pythontoday
/ pythontoday
yoomoney.ru/to/410019570956160
🔥 Стать спонсором канала:
/ @pythontoday
****Ссылки****
Дешевый/надежный сервер в Европе + СКИДКА 10%:
vdsina.ru/?partner=858b36ud3p
Хороший proxy сервис:
proxy6.net/a/149995
Парсинг криптобиржи | Торговый бот | API криптобиржи:
• Парсинг криптобиржи | ...
Как отправить сообщение на почту с помощью Python | Email рассылка | Python send Gmail
• Как отправить сообщени...
Асинхронный парсинг на Python | Ускоряем код в 10 раз
• Асинхронный парсинг на...
Крутой заказ на фрилансе | Подбираем забытый пароль к Excel файлу с помощью Python:
• Крутой заказ на фрилан...
Пишем Telegram бота на Python + Загружаем Telegram бота на сервер(хостинг):
• Пишем Telegram бота на...
Плейлист по распознаванию лиц на Python:
• Распознавание лиц | Fa...
Плейлист по парсингу сайтов на Python:
• Парсинг/Scraping
Версии Chromedriver:
chromedriver.storage.googleap...
Код проекта на github:
github.com/pythontoday/scrap_...
И в telegram канале:
t.me/python2day
****Соц.сети****
Telegram: t.me/python2day
#scraping #webscraping #парсинг #requests #python #фриланс #beautifulsoup #selenium
[INFO] актуальная инфа по данному уроку
Для тех у кого не получается проскролить, так как в конце скролла страницы, не появляется тег с сообщением о том, что дальше скролить некуда. Присмотритесь к тегу к которому мы перемещаемся для скролла. Внутри тега есть еще два тега, но при полном проскроливане страницы, эти теги исчезают. Ставьте условие не по наличию нового тега, а по отсутствию любого из внутренних двух. При таком условии весь код в блоке if из видео, переместится в блок else, аналогично для блока else из видео для блока if
+ Для внимательных перфекционистов. Не все карточки попадут в список карточек. Если просмотреть все карточки на странице с карточками, можно увидеть, что у некоторых слегка затемнен фон. Посмотрев на тег такой карточки, мы увидем, что в название класса добавляется дополнительное слово, что изменяет имя класса и означает что url к нам в список не попадет. Сами же карточки внутри не отличаются от остальных, не являются рекламными или повторяющимися (проверено), может они просто блатные какие то - хз. Для того чтобы они тоже попали к нам в список можно воспользоваться тем же compile() с названиями обеих карточек.
++ Для тех кто еще не работал с Selenium и вам не нравиться, что он ругается на вас(но все равно работает😎), за устаревшие методы как в видео.
Для создания драйвера можно использовать это 👇
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service('ПУТЬ К ДРАЙВЕРУ\chromedriver.exe')
driver = webdriver.Chrome(service=service)
За место этого (как в видео)👇
from selenium import webdriver
driver = webdriver.Chrome('ПУТЬ К ДРАЙВЕРУ\chromedriver.exe')
А для поиска по классу можно использовать это 👇
driver.find_element(by=By.CLASS_NAME, value="catalog-button-showMore")
Предварительно импортируя это 👇
from selenium.webdriver.common.by import By
За место устаревшего поиска как в видео👇
driver.find_element_by_class_name("catalog-button-showMore")
+++ Для PythonToday. Ты красавчик большое спасибо❤
Ты красавчик тоже. Тебе спасибо
сразу же надо было читать комментарии я на это потратил уйму времени
Красавчик мужчина,от души
Спасибо за INFO , если не затруднит можешь подсказать в чем проблема :
find_more_element = driver.find_element(By.CLASS_NAME,"catalog-button-showMore")
затем идет блок кода где find_more_element должна прожаться и произойти догрузка контента :
actions = ActionChains(driver)
actions.move_to_element(find_more_element).perform()
но проблема в том , что кнопка не прожимается и цикл продалжает крутиться н непрожимая кнопку "показать еще"
Спасибо огромное за Ваш труд. Вчера закончил написание парсера группы в ВК и автоматической отправкой стат данных по постам в группе на почту нескольким сотрудникам. Все благодаря вашим урокам!! Настроение бомбическое, когда все получается!
Большое спасибо за качественный материал! Каждый урок пишу и "иду" по коду, чтобы все понять. Спасибо!
Спасибо за фидбэк! Рад что видео помогают
Огроменное спасибо за твои труды, двигайся дальше. У тебя очень полезные видео. С помощью твоих видео люди сэкономят кучу времени и нервов!
Спасибо за поддержку!
Огромное спасибо! Всегда с удовольствием слушаю и с удовольствием поддерживаю!
Большое спасибо за фидбэк и поддержку!
Пушка контент, огонь канал, кот талисман)) Успехов в развитии брат, безумно благодарен за проделанную тобой работу и пинок лично для меня. Спасибо тебе большое!
Спасибо дружище) Рад что видео полезны
Я хоть и джава программист, смотрю твои видосики и вообще начал изучать парсинг благодаря тебе. Спасибо за видео
Спасибо за труд и за полезную информацию. Очень понятно объясняешь. Круто!
Большое спасибо за фидбэк! Рад что полезно
Материал просто огонь! Спасибо за труды!;)
Спасибо большое за поддержку! Рад что полезно 👍
Как всегда пушка - огоньСмотришь и просто кайфуешь, кучу полезной инфы с каждым просмотренным видосом приобретаю
Спасибо за поддержку!
Просто лучший!! Без воды и отлично обьясняешь)
Большое спасибо! Рад что интересно и полезно)
Красиво, четко, лаконично и еще и работает!!!) Канал находка для меня, благодарю за такой качественный контент)
Большое спасибо за фидбэк! Рад что видео полезны и помогают!
Огромное спасибо. Все просто и доходчиво! Без всякой "воды" и перескакивания !!!!
Огромное спасибо за фидбэк и поддержку!
Все мы были нубами. Так что - спасибо, за то что делишься своими навыками. А еще это ж опыт!
Большое спасибо за фидбэк и поддержку!
Спасибо за видео. Очень пригодилось!
Спасибо за видео! Очень вдохновляет!!!
Большое спасибо! Рад что полезно 👍
Идея дать эксклюзивного контента практики удалась на ура. Я даже не думал что практики так не хватает во всяких контентах. Безумно благодарен.
Благодарю за видео. Толко обучился python, и уже такой бомбический канал, по Парсингу сайтов. Когда проходил задание на обучении этому, помогли Ваши уроки :).
Благодарю за фидбэк! Рад что видео помогают)
Спасибо большое за видео! Очень доходчиво и полезно) хотелось бы ещё уроков на библиотеки, которые ты используешь, более подробно)
Спасибо большое за фидбэк! Рад что полезно
🔥🔥🔥 Как всегда урок СУПЕР!!! Огромное спасибо!!! (я только-только начинаю самостоятельно изучать Python, пока на самом примитиве)
Благодарю! Рад что полезно и помогает. Главное ежедневно практикуйся
PythonToday
ДРУГ ты крут, спасибо тебе за хорошие видосы, ты даешь знания и вдохновляешь!
Большое спасибо за фидбэк!
Очень полезное видео,
Узнал много нового .
Спасибо за подробное объяснение!
Большое спасибо за поддержку! Рад что полезно
Спасибо огромное за труд! Твой канал это просто энциклопедия знаний, не слушай даунов, ты создаешь безумно полезный и нужный контент. Желаю двигаться только вперед, а мы поддержим 😉 Ты же знаешь)
Большое спасибо за фидбэк и поддержку! 👍
@@PythonToday а что это за ide?
@@brunneng8575 VSCode
@@user19326 Приветствую, авторского курса пока нет. Только веду несколько человек.
@@PythonToday Здравствуйте спасибо за туториалы, очень много нового узнал))!
Скажите а на селениуме можно парсить данные с карты на сайтах по недвижимости ?
Огромное спасибо. Материал бомба!!!
Большое спасибо за фидбэк! Рад что полезно и интересно
Спасибо за контент))
Очень хорошо рассказываешь!
Благодарю за фидбэк!
Как всегда лайк! Молодец, приятно смотреть!!!
Большое спасибо за поддержку!
Манера объяснение темы на высшем уровне.☀️😇 как и всегда 😊 правда для того что бы вникать, хотя бы нужно знать основы питона. чего всем советую 😊 всем добра, автору здоровья и больше роликов 😅
Огромное спасибо за поддержку!
Дружище, ты лучший! Спасибо за видео!
Большое спасибо за фидбэк!
Интересные методы, спасибо, что поделился. Я не использую bs4 или что-то еще. Только встроенные методы самого Selenium. Скролю скриптом через driver.execure_script(), так как до конца список может грузиться и без всяких индикаторов в виде появляющегося блока. И там добавили уже manager service, чтобы не указывать место к webdriver-у явно, и качать его не нужно, он сам его качает.
Благодарю за фидбэк!
За видео респект. Особенно понравился генератор списков, приятно удивился😉
Спасибо за фидбэк! Рад что видео помогают)
Очень круто , спасибо!
Благодарю за фидбэк!
Спасибо за урок!
Буквально пару уроков назад по парсингу столкнулся с бесконечной прокруткой сайта, но так и не довел до ума автоматическую прокрутку через Selenium.
А тут она реализована.
Подправил свою по образу и подобию, все прекрасно заработало.
Рад что полезно! Большое спасибо за фидбэк!
Спасибо большое за видео, было очень полезно и познавательно. Но пришлось основательно переписывать скрипт, так как поменялись методы в библиотеках, теги на сайте и много всего еще прочего!
Отличный урок, спасибо !
Благодарю за фидбэк!
Нифига себе "если видео было вам полезным и вы узнали что-то новое", да это одно из лучших видео по парсингу, которое я видел, все чётко, подробно, конкретно!!!!
Ваще когда месяц назад наткнулся на твой канал, я был просто в восторге, ибо все просто и офигенно озвучено, без какого либо пафоса, конкретно и ясно, и более того очень точно и профессионально, смотрю более старые видосы, когда время есть...
Все супер, так держать, на днях в спонсоры на патреоне добавлюсь, очень полезные видео 👍🏻👍🏻👍🏻
Спасибо большое за фидбэк и поддержку!
@@PythonToday все, запатронился к тебе :)
Теперь ждём на асинцио☺️💃
А работа проделана большая! Ставим класс 👍
Спасибо за фидбэк!
Паршу сайты поставщиков для своего дела, нашел в твоем коде красивые вещи, которые буду применять у себя. Продолжай в том же духе, ты красавчик!
Большое спасибо за фидбэк! Рад что полезно)
Я человек простой, вижу Ваше видео - ставлю нравку!
Большое спасибо за поддержку!
2:35 библиокеки! 🤣🤣🤣🤣🤣! PythonToday спс за контент, постоянно очень жду новые видео!:)
Молодчага!!! Спасибо за ролик!!!! Познавательно! Лайк!
Спасибо большое за поддержку!
Обожаю такие видосы.
Ждемс вторую часть заказа с помещением данных в бд)
Идеальный формат!
Благодарю! Рад что интересно и полезно
супер! Спасибо, очень познавательно!
Большое спасибо!
Спасибо за топовый контент!👍👍
Большое спасибо за фидбэк! Рад что полезно
Ого!)
Ви молодець!)
Дякую вам!)
Благодарю за поддержку!
Очень интересное видео, спасибо.
Большое спасибо за фидбэк!
спасибо огромное , очень полезное видео , самый лучший Питон блоггер
Благодарю!
Классное видео, спасибо!
Благодарю за фидбэк!
*Спасибо тебе большое, очень нравится питон и по твоим урокам обучение ускоряется в несколько раз, оху#**#ный** ты мужик!!!*
Большое спасибо за фидбэк! Рад что полезно
Туториал как обойтись без селиниума)
Привет! Сайт действительно крутой со стороны обучения.
Однако ты прав что можно обойтись без селиума если посидеть.
Кароче тут подгружается страница вариантов POST запроса, JS кода а в ссылке самого запроса есть номера страниц, полученный код кидаем в формат json и вуаля.
У тебя новая подгружаемая страница.
Учитывая что я учусь requests по твоим видео, спасибо!
Просто офигенно!
Благодарю!
Классный урок!
Благодарю!
Как всегда, лучший!
Благодарю!
Отличный урок, что сказать
Большое спасибо!
вместо переменной "count" можно использовать функцию enumerate() на цикл фор. выглядит это примерно так:
list = ['a', 'b', 'c']
for i, el in enumerate(list):
print(i, el) # 0 a, 1 b, 2 c
Спасибо вам огромнейшее!!!
Спасибо за фидбэк!
6:23 - если правильно понял, элемент будет тогда и только тогда, когда загрузка полностью окончена. Правильно тебя понял?
Смотри, у selenium есть инструмент explicit wait, он как раз для этого.
Поищи в доках на селен, так вот, задай хоть час, но скрипт продолжить работу в то время и только в то, как элемент будет обнаружен.
Юзается BY, можно выставить, что удобно, в примере xpath, его и юзаю и на вэб, мобилках (юзал).
Видео класс, люблю только selenium, bs4 нет, но без requests никуда, факт.
Огонь!!
Огонь!)
в очередной раз спасибо за труд и материал для практики)))
похоже админы сайта учли свои ошибки и немного его реконструировали, поэтому например: поле сайта клиники и соц сетелей на страницах компаний, теперь лежат каждый в своем теге под отдельным названием и добраться до них стало куда проще))
По ходу написания, заодно попрактиковался в grequests, пропустив через нее итоговую функцию обработки списка собранных ссылок (очень уж понравился мне этот модуль, своей простотой и эффективностью) и получилось даже лучше чем изначально предполагал)) без пауз между запросами скрипт отработал всего за 45 секунд (обработал 243 позиции))
Только 1 раз уже перед финальным сбором уже всей инфы, когда проверял как укладываются все поля в json на срезе из 5 клиник, и ничего ли не пропустил, и не напутал, угодил в капчу. Для пробы просто прошел ее на сайте руками, после чего, перезапустил скрипт и все сработало как часы)))
Спасибо за фидбэк!
огромное спасибо!!
Ты красавчик! Спасибо тебе
Спасибо за поддержку!
Я летом начал изучать питон. И только сегодня получил рекомендацию на твои видосы. С первых слов подача цепляет, штош, похоже я здесь залипну)) Лайк, подписка и всё такое! спасибо)
Большое спасибо за фидбэк! Надеюсь видео будут полезны)
Не без проблем, но все получилось. Спасибо !
Спасибо за фидбэк! Рад что полезно!
Просто пушка ))
Большое спасибо!
круто, спасибо
Большое спасибо за фидбэк!
Хорошая тема!
Благодарю за фидбэк, рад что интересно и полезно!
Что бы без тебя а. Продолжай я Junior по Python у с твоих видео я понял на сколько полезен Парсинг и как его легко делать. Ну да чуть чуть пока хромую по Парсингу но надеюсь твоих видео я обучусь этому лучше. Продолжай без тебя мы бы Яша читали бы инструкцию 🤦🏿♂️ Хорошо что ты снимаешь Спасибо тебе за труд 👍🏻
Спасибо большое за фидбэк! Рад видео полезны и помогают
Спасибо все классно
Благодарю, рад что полезно!
Полностью поддерживаю !!!!! Zer0
Супер!!!
Спасибо!
Отлично!
Спасибо!
Это просто вау
Спасибо большое! Рад что интересно
Начинаем😍
Спасибо за поддержку! )
Совет: Не стоит использовать time.sleep(n) для ожидания прогрузки страницы или элемента, куда разумнее использовать explicit waits.
В данном случае можт это и сработает нормально, но в случае с selenium использование time.sleep() - моветон
Сайт затупит, инет затупит. Слип пройдет и пизда проге. Так что верный совет
Спасибо за видео! Сделай пжл про парсинг статичных страниц, если они автоматом не подгруждаются и надо ручками странички менять - очень сейчас такая задачка нужная для решения)
Покажи пример такой страницы?
Спасибо тебе огромное за труд. Много чему научился благодаря тебе. Желаю удачи! И вопрос: а ты для парсинга используешь scrappy?
Большое спасибо за фидбэк! Рад что видео помогают. Использовал scrappy только в нескольких простых проектах.
"... я только учусь, и делюсь практикой, которой мне так не хватало, с менее опытными подписчиками..." Уважаемый! Боюсь представить уровень Вашей компетенции, когда Вы закончите обучение.
В программировании нельзя закончить обучение)
мастерски 👍👍
Спасибо, но только учусь)
@@PythonToday скромность украшает!
Нетривиальный сайт, действительно весьма поучительный. Впрочем в моей практике самым сложным было иметь дело с обфускаторами и гугл капчей.
Держи мой жирный лайк!!!
Спасибо за поддержку!
Круть )))))
Благодарю!
Здраствуйте, нравятся ваши видео, но заметил особенность, в вашем коде при использовании selenium всегда нужен вебдрайвер, что не очень удобно. Советую вам использовать undetected_chromedriver . Вебдрайвер не нужен, да и по названию понятно, что оно может еще делать
Super спасибо
Благодарю за фидбэк!
по больше бы видео по парсингу сайтов
Да вроде итак самый большой плейлист на ютубе 😀
Автор Профи!
Подскажите, пожалуйста, как спарсить таблицу целиком с сайта и записать её в хlsх файл при этом транспонируя весь первый столбец в шапку документа?
Годно!
Спасибо!
@@PythonToday Спасибо что ответил❤️
Спасибо! А теперь давайте что-нибудь немного посложнее - например пободаемся c Instagram в плане парсинга)
Спарсить можно что угодно. Даже если придётся для этого делать скрин шот и распознавать в нужном секторе текст))
Привет! Спасибо тебе огромное братан!! Небросай это дело! Фишка твоего канала это как ты поистинне охуенно объясняешь, смотрю у других ничего непонятно а у тебя я обучился всему крутому и за это я благодарен ТЕбе! Бро, я очень прошу сделай пожалуйста по больше видеоуроков и по Телеграм ботов и т.п, так как это щяс самая популярная тема и я буду рад увидеть такое видео у тебя на канале! Удачи!
Привет!
спасибо большое за твое видео, очень интересно. Когда под Windows писать в файл надо наверное явно указывать кодировку иначе файл пустой (может я не прав, но у меня получилось)
Привет, благодарю за фидбэк. Да, ты прав.
PythonToday: нужно сделать многопоточный парсинг
коммент в поддержку!!
коммент в поддержку!!
коммент в поддержку!!
Спасибо!
5k за пол часа, неплохо!
Классное видео, спасибо! А на какой бирже получил этот заказ? И вообще куда лучше идти за фрилансом?
Благодарю за фидбэк! Сейчас только сарафанное и старые заказчики, раньше сидел на всех upwork, freelancer, habr, fl, kwork
Когда за 30 мин узнал больше чем за 2 онлайн курса
Спасибо большое за фидбэк! Рад что полезно)
все конечно круто! Но есть такой фреймворк Scrapy
Ещё больше реальных заказов, ведь это позволяет понять что всё это учишь не зря и кому-то это нужно))
А те кто пишут про тысячи долларов за один заказ зачем парсят сайты? Для поиска самого дорого Роллс-Ройса наверно)))
Большое спасибо за поддержку! Думаю максимум, что они парсят, это глазами клавиатуру)
@@PythonToday ...в онлайн-ферме, капусту поливают и игровое золото собирают...
@@dryuni я бы в своё время от такого бота не отказался)
Приятель, у меня такой вопрос - Я понимаю смысл строки "if __name__ = '__main__' ", но не понимаю зачем его использовать всегда, то есть это делается с загвосткой что ты можешь когда нибудь запустить этот код как стороннюю библиотеку?
Видео старео, но буду крайне рад если ответишь!
насчет 30 долоров это конечно круто