
Web Scraping- Задачи, проблемы, инструменты.pptx
- Количество слайдов: 14
Никита Роговой Web-Разработчик, INOSTUDIO Email: n. rogovoy@inostudio. com Skype: Mammoth. MKIV
Web Scraping: Задачи, проблемы, инструменты Никита Роговой Web-разработчик INOSTUDIO
Что такое скрэйпинг (scraping)? Процесс извлечения структурированной полезной информации с сайта называется скрэйпингом (scraping) в переводе с английского scrape соскребать. 2 из 12
Когда автоматизировать? • Повторяющийся процесс • Большое число полей на страницу • Большое число страниц 3 из 12
Методы извлечения информации 1. Ручной. Парсер - человек. Информация собирается копипастом. 2. Гибридный. Парсер - человек. Используются вспомогательные программные средства. 3. Автоматический. Парсер - программа. Человек контроллирует его работу. 4 из 12
Scraping отдельной страницы 1. Построение запроса для получения информации 2. Выполнение запроса и получение ответа 3. Обработка ответа, извлечение и структурирование требуемой информации 4. Передача полученной информации для последующей обработки 5 из 12
Примеры Просто: загрузить публично доступную страницу, извлечь данные из одного или нескольких полей. Сложно: авторизоваться в системе, сконструировать запрос с учётом нескольких переменных из заголовков, а также значения JS переменной, название которой с каждым запросом изменяется, а JS логика приложения минифицирована и обфусцирована. 6 из 12
Инструменты Библиотеки Эмуляторы браузера • j. Soup для Java • Phantom. JS • Simple. HTMLDom для PHP • Slimer. JS • lxml. html для Python • Casper. JS SAAS решения • Mozenda (от $100/мес) • Grepsr (от $130 за сайт) • Scrapinghub (имеется бесплатный тариф) 7 из 12
Проблемы, вызываемые парсерами • Расход вычислительных ресурсов целевого сервера • Расход трафика целевого сервера • Do. S целевого сервера при плохой архитектуре парсера 8 из 12
Виды противодействия • Динамическое изменение структуры кода страницы • Капча при авторизации/регистрации/превышении числа запросов за единицу времени • Блокировка клиентов по среднему объему трафика за единицу времени • Анализ поведения клиентов и блокировка/требование ввести капчу для продолжения работы при подозрительном поведении 9 из 12
Как их можно обойти • В случае динамического изменения структуры выводимых данных – искать алгоритм, по которому она меняется и адаптировать парсер под неё, либо прибегать к скринскрэйпингу. • Передать задачу распознавания капчи сторонним сервисам. • Разрабатывать парсер так, чтобы он имитировал работу реального пользователя, растягивать обработку страниц по времени. 10 из 12
Пример из жизни • 25 рекламных площадок • Каждую неделю предоставлять отчёт о доходах и расходах с каждой рекламной площадки и сводный график по всем площадкам Стек решения • PHP • My. SQL • Phantom. JS 11 из 12
Чего удалось достичь • Сокращение затрат на составление отчёта (на один отчёт уходило до 3 х часов) • Предоставление отчёта каждый день • Более эффективное управление рекламными кампаниями 12 из 12
Никита Роговой Web-Разработчик, INOSTUDIO Email: n. rogovoy@inostudio. com Skype: Mammoth. MKIV
Web Scraping- Задачи, проблемы, инструменты.pptx