Парсер интернет магазина на python, на примере wildberries
16.11.2024
15.04.2025
4 минуты
144
0
0
0
0
Введение и обзор парсера
В наши дни парсить интернет-магазины не просто. Все они довольно продвинуты в плане защиты от парсеров и ботов. Они могут использовать такие типы защит как, использовать динамический контент, брандмаузеры. Одной из самых знаменитых компаний обеспечивающих такую защиту является cloudflare.
В этом туториале я покажу различные методы обходов блокировок на примере онлайн-магазина wildberries. Если быть более конкретным, то я покажу как сделать парсер на основе библиотеки Selenium и как настроить для него ротацию прокси. Прокси мы будем использовать бесплатные.
А в качестве бонуса предоставлю один парсер и один чекер прокси. Они помогут тебе в создании своих пулов прокси под различные сайты.
Пишем базовый парсер
Для начала, напишем и сделаем обзор на написанный мною парсер. Тебе потребуется создать и активировать виртуальное окружение.
Если windows то:
Если *unix системы то:
После чего установим необходимые пакеты:
Импортируем заголовки. В твоей рабочей директории, должна быть папка proxy_rotator Данный пакет регулирует выдачу прокси по запросу. Выдаёт она прокси случайно в зависимости от веса прокси. Чем больше вес, тем больше вероятность того, что будет выбрано именно эта прокси.
Добавим ещё пару утилитарных функций, таких как:
- сохранение в json
- сохранение в html
- загрузку прокси
- и парсинг необходимых данных
В моём случае я решил парсить главную страницу. Собрать все цены и заголовки товаров. Функция parse_data определяет что парсить и куда сохранять.
Добавим в самом низу данные строчки кода. Они говорят вызови функцию run() только если данный скрипт запускается при помощи python-интерпретатора.
Теперь то, как выглядит главная функция run():
Сначала создаём ротатор прокси, загружая в него уже подготовленный список ( о том как собрать свой собственный смотри в следующей главе). После чего в цикле создаём selenium драйвер и присваиваем ему прокси, если прокси плохой, то всплывёт исключение TimeoutException, что триггернёт сообщение в консоли и замену прокси.
Это был базовый парсер. Полностью готовый парсер сайта wildberries. В данном архиве ты найдёшь и proxy_rotator пакет и список готовых прокси, хотя я и не гарантирую что они будут работать на момент твоего прочтения данной статьи.
Сбор бесплатных прокси
Так как wildberries это интернет-магазин работающий на территории России и СНГ то и прокси должны быть оттуда, для большей правдоподобности наших парсеров на обычных пользователей.
Итак, как и откуда можно взять бесплатные прокси? Представляю тебе моего скраппера бесплатных прокси, с возможностью выбора и фильтрации прокси по странам, используемым протоколам и типу самих прокси.
Чтобы собрать только русские прокси с используемыми протоколоми http и https введи следующую команду:
Если хочешь узнать какие коды, каким странам соответствуют введи:
В результате ты получишь JSON файлы со списками прокси. Все такие файлы находятся в директории data. Всё происходит в параллельном режиме и ты можешь в любой момент остановить скрипт если посчитаешь, что тебе хватит.
Проверка бесплатных прокси
Итак, мы собрали сотни прокси и могу тебе гарантировать большинство из них это откровенный мусор. Нам нужно будет его отфильтровать, при чём, отфильтровать используя в качестве фильтра целевой сайт, то есть wildberries.
Для проверки работоспособности прокси на том или ином сайте, я создал специальный CLI инструмент. Который ты можешь скачать по ссылке в предыдущем предложении (⊙_(⊙_⊙)_⊙). Вот как проверить список таких прокси, команда:
Где -i это те прокси которые ты получил используя мой скрапер прокси
Где -o это имя файла-результата где каждому прокси будет присвоен вес.
Где -U это список сайтов проверки
Больше опций и вариантов можно посмотреть используя -h флаг. Но в данном случае нас больше заинтересует log.txt файл. Ведь там хранятся результаты проверок каждого прокси и то сколько раз он успешно подключался к целевому сайту. Выбери самые успешные прокси и объедини их в один JSON файл, который потом будешь использовать для парсинга сайтов.
Комментарии
(0)
Отправить
Сейчас тут пусто. Буть первым (o゚v゚)ノ
Другое
Похожие статьи
Использованные термины
- VPS (Виртуальный частный сервер) ⟶ Это услуга суть которой заключается в том что предоставляется доступ к выделеному серверу на определённой машине. Таких выделенных серверов на одной машине может быть тысячи. Обычно управление таким сервером не отличается от управления обычным, физическим.
- Конструктор сайтов ⟶ Это приложение или веб сервис, с набором готовых решений и шаблонов, для создания сайтов.
- Вебсайт ⟶ Это совокупность связанных между собой веб-страниц, доступных через интернет и имеющих одно общее доменное имя. Каждый веб-сайт может содержать текстовую информацию, изображения, видео и другие мультимедийные элементы. Веб-сайты могут выполнять различные функции, включая предоставление информации, общение, онлайн-торговлю и множество других взаимодействий.
- Парсер ⟶ Это программа или компонент программного обеспечения, который анализирует текст или данные, разбивая их на составные части и преобразуя в удобный для обработки формат. Обычно парсеры используются для извлечения информации из структурированных данных, таких как HTML, XML, JSON или других форматов.
- Поисковой движок ⟶ Это специальная программа или система, предназначенная для поиска информации в Интернете или в определённой базе данных. Основная функция поискового движка заключается в индексировании веб-сайтов и их содержимого, чтобы пользователи могли быстро находить нужную информацию по введённым поисковым запросам.
- TCP (Протокол управления передачей) ⟶ Это протокол транспортного уровня, который используется для обеспечения надежной передачи данных в сетях, включая Интернет. Он работает в паре с протоколом IP (Internet Protocol), что вместе образует стек TCP/IP.
Релевантные вопросы
- Как избежать блокировки при парсинге веб-сайта? Многие веб-сайты заблокируют вас, если вы будете слишком много их парсить. Чтобы избежать отказа, вам следует сделать процесс парсинга более похожим на просмотр веб-сайта человеком. Например, добавление задержки между двумя запросами, использование прокси-серверов или применение различных шаблонов парсинга может помочь вам избежать блокировки.
- В чем разница между веб-скрапингом и веб-сканированием? Веб-скрейпинг и веб-краулинг — это два связанных понятия. Веб-скрейпинг, как мы уже упоминали выше, представляет собой процесс получения данных с веб-сайтов; веб-краулинг — это систематический просмотр Всемирной паутины, как правило, с целью индексации веб-сайтов.
- Можно ли парсить Instagram? Если данные, которые ты собираешься собрать являются публичными и они доступны всем, то однозначно можно. Плюс Инста предоставляет специальный API для парсинга, поэтому проблем возникнуть не должно.
- Что такое облачный парсер Это услуга по сборе информации из различных источников и группировки их в различных форматах, которая проводится на облачных серверах поставщика данной услуги.
- Как проводится парсинг Всё зависит от того что парсить и чем парсить. Можно парсить документы и таблицы, а можно парсить сайты. При чём сайты парсить сложнее чем документы, ибо сайтов великое множество и у каждого своя архитектура, что сильно усложняет парсинг.