SlideShare a Scribd company logo
Как грабить корованы
Александр Козько и Руслан Сафин
ByndyuSoft
@alkozko @razonrus
12-я конференция .NET разработчиков
15 мая 2016
dotnetconf.ru
2
BIG DATA
• Volume (Объем)
• Velocity (Скорость)
• Variety (многообразие)
3
4
Грабеж корована
• Найти данные
• Получить
• Обработать
• …
• Повторить
5
Данные бывают
Структурированные
Неструктурированные
Полуструктурированные
6
Информация содержит
• Тексты
• Имена
• Факты
• все остальное
• Изображения
• Числа
• Связи
7
Доступ к информации
Официальный
Неофициальный
Совсем неофициально
8
Официальное использование
Дампы и архивы данных
• Базы данных ФИАС, Wikipedia, Rutracker
9
Официальное использование
Публичные API
• Социальные сети
• Некоторые СМИ (New York Times, …)
• Другие источники (ЦБ РФ, 500px, …)
9
10
Официальное использование
Ссылки на данные
• RSS
• Sitemap
10
11
Неофициальный доступ
HTML
• Ручная обработка каждого сайта
через XPath (AgilityPack, AngleSharp)
• Умные алгоритмы анализирующие
структуру страниц (NReadability)
12
Примеры – XPath
//*[@id="firstHeading"]
//*[@id="layout"]/div[3]/div[3]/div[2]/div[4]/div[2]
//*[@class='companies_items']/*[@class='company_item']
13
Примеры – NReadability
14
Сложности
Краулинг = (D)DoS
Сайты не хотят делиться информацией
Сайты защищаются
15
Обход защиты
Прикидываемся Google bot:
• User-agent
Прикидываемся пользователем
• Ограничение одновременных запросов
• User-agent и Headers
• Cookie
Прокси
16
Тяжелый случай
Эмуляция браузера, когда ничего
другого не помогает:
• Selenium
• PhantomJS
• Awesomeum
16
17
Совсем неофициально
Ревес-инжиниринг Internal API
• Анализ верстки и JS
• Traffic sniffing (Fiddler2, Web Developer Tools)
• Декомпиляция приложений
Обход ограничений
• Rucaptcha.com
• Виртуальные номера для СМС
• Одноразовые email
18
Как запустить в продакшн
Асинхронные запросы
Очереди
19
Истории успеха
20
Спасибо за внимание
Александр Козько и Руслан Сафин
alkozko@yandex.ru iruslansafin@gmail.com
@alkozko @razonrus

More Related Content

What's hot

Linked Open Data (EIS)
Linked Open Data (EIS) Linked Open Data (EIS)
Linked Open Data (EIS)
Fred Kozlov
 
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Ontico
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
HappyDev
 
20150129 минобороны презентация v02
20150129 минобороны презентация v0220150129 минобороны презентация v02
20150129 минобороны презентация v02
finnopolis
 
DDoS-атаки Рунета в 2011-2012 гг.: характер и тенденции
DDoS-атаки Рунета в 2011-2012 гг.: характер и тенденцииDDoS-атаки Рунета в 2011-2012 гг.: характер и тенденции
DDoS-атаки Рунета в 2011-2012 гг.: характер и тенденции
HLL
 
Использование облачной платформы OpenStack для реализации механизмов обработк...
Использование облачной платформы OpenStack для реализации механизмов обработк...Использование облачной платформы OpenStack для реализации механизмов обработк...
Использование облачной платформы OpenStack для реализации механизмов обработк...Игорь Мызгин
 
МойСклад, облачный сервис ERP
МойСклад, облачный сервис ERPМойСклад, облачный сервис ERP
МойСклад, облачный сервис ERP
Oleg Alexeev
 
Астерит. Михаил Пузин. "Облачные сервисы, соответствующие законодательству "О...
Астерит. Михаил Пузин. "Облачные сервисы, соответствующие законодательству "О...Астерит. Михаил Пузин. "Облачные сервисы, соответствующие законодательству "О...
Астерит. Михаил Пузин. "Облачные сервисы, соответствующие законодательству "О...
Expolink
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
IT-Portfolio
 
Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»DataArt
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Mikhail Tabunov
 
Аналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времениАналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времени
CodeFest
 
Практика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему HadoopПрактика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему Hadoop
Yury Petrov
 
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Yury Petrov
 
Анализ доменной зоны TJ
Анализ доменной зоны TJАнализ доменной зоны TJ
Анализ доменной зоны TJIvan Golodov
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
IT-Portfolio
 
Евгений Куршев, Яндекс.Метрика вместо сериалов: анализируем поведение пользов...
Евгений Куршев, Яндекс.Метрика вместо сериалов: анализируем поведение пользов...Евгений Куршев, Яндекс.Метрика вместо сериалов: анализируем поведение пользов...
Евгений Куршев, Яндекс.Метрика вместо сериалов: анализируем поведение пользов...
Optimization conference
 

What's hot (20)

Linked Open Data (EIS)
Linked Open Data (EIS) Linked Open Data (EIS)
Linked Open Data (EIS)
 
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
 
20150129 минобороны презентация v02
20150129 минобороны презентация v0220150129 минобороны презентация v02
20150129 минобороны презентация v02
 
DDoS-атаки Рунета в 2011-2012 гг.: характер и тенденции
DDoS-атаки Рунета в 2011-2012 гг.: характер и тенденцииDDoS-атаки Рунета в 2011-2012 гг.: характер и тенденции
DDoS-атаки Рунета в 2011-2012 гг.: характер и тенденции
 
poznay top 2
poznay top 2poznay top 2
poznay top 2
 
Использование облачной платформы OpenStack для реализации механизмов обработк...
Использование облачной платформы OpenStack для реализации механизмов обработк...Использование облачной платформы OpenStack для реализации механизмов обработк...
Использование облачной платформы OpenStack для реализации механизмов обработк...
 
МойСклад, облачный сервис ERP
МойСклад, облачный сервис ERPМойСклад, облачный сервис ERP
МойСклад, облачный сервис ERP
 
Астерит. Михаил Пузин. "Облачные сервисы, соответствующие законодательству "О...
Астерит. Михаил Пузин. "Облачные сервисы, соответствующие законодательству "О...Астерит. Михаил Пузин. "Облачные сервисы, соответствующие законодательству "О...
Астерит. Михаил Пузин. "Облачные сервисы, соответствующие законодательству "О...
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
 
Как устроены поисковые системы
Как устроены поисковые системыКак устроены поисковые системы
Как устроены поисковые системы
 
Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
 
Аналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времениАналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времени
 
Доменная структура интернета
Доменная структура интернетаДоменная структура интернета
Доменная структура интернета
 
Практика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему HadoopПрактика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему Hadoop
 
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
 
Анализ доменной зоны TJ
Анализ доменной зоны TJАнализ доменной зоны TJ
Анализ доменной зоны TJ
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
 
Евгений Куршев, Яндекс.Метрика вместо сериалов: анализируем поведение пользов...
Евгений Куршев, Яндекс.Метрика вместо сериалов: анализируем поведение пользов...Евгений Куршев, Яндекс.Метрика вместо сериалов: анализируем поведение пользов...
Евгений Куршев, Яндекс.Метрика вместо сериалов: анализируем поведение пользов...
 

Similar to Как грабить корованы

Конкурентная Разведка в Интернете
Конкурентная Разведка в ИнтернетеКонкурентная Разведка в Интернете
Конкурентная Разведка в ИнтернетеPositive Hack Days
 
Скрытые данные. Какие данные спрятаны на госсайтах
Скрытые данные. Какие данные спрятаны на госсайтахСкрытые данные. Какие данные спрятаны на госсайтах
Скрытые данные. Какие данные спрятаны на госсайтах
Ivan Begtin
 
лекция информационные ресурсы
лекция информационные ресурсылекция информационные ресурсы
лекция информационные ресурсы
Tatjana Reichert
 
#1 razvedka i sbor dannih
#1 razvedka i sbor dannih#1 razvedka i sbor dannih
#1 razvedka i sbor dannih
Uladzislau Murashka
 
Атрибуция кибератак
Атрибуция кибератакАтрибуция кибератак
Атрибуция кибератак
Aleksey Lukatskiy
 
Мастер класс по открытым данным
Мастер класс по открытым даннымМастер класс по открытым данным
Мастер класс по открытым данным
DimOK AD
 
Oracle Endeca Information Discovery - Платформа для исследования данных
Oracle Endeca Information Discovery - Платформа для исследования данныхOracle Endeca Information Discovery - Платформа для исследования данных
Oracle Endeca Information Discovery - Платформа для исследования данныхAndrey Akulov
 

Similar to Как грабить корованы (7)

Конкурентная Разведка в Интернете
Конкурентная Разведка в ИнтернетеКонкурентная Разведка в Интернете
Конкурентная Разведка в Интернете
 
Скрытые данные. Какие данные спрятаны на госсайтах
Скрытые данные. Какие данные спрятаны на госсайтахСкрытые данные. Какие данные спрятаны на госсайтах
Скрытые данные. Какие данные спрятаны на госсайтах
 
лекция информационные ресурсы
лекция информационные ресурсылекция информационные ресурсы
лекция информационные ресурсы
 
#1 razvedka i sbor dannih
#1 razvedka i sbor dannih#1 razvedka i sbor dannih
#1 razvedka i sbor dannih
 
Атрибуция кибератак
Атрибуция кибератакАтрибуция кибератак
Атрибуция кибератак
 
Мастер класс по открытым данным
Мастер класс по открытым даннымМастер класс по открытым данным
Мастер класс по открытым данным
 
Oracle Endeca Information Discovery - Платформа для исследования данных
Oracle Endeca Information Discovery - Платформа для исследования данныхOracle Endeca Information Discovery - Платформа для исследования данных
Oracle Endeca Information Discovery - Платформа для исследования данных
 

Как грабить корованы

Editor's Notes

  1. В качестве определяющих характеристик для больших данных отмечают «три V»: объём (англ. volume, в смысле величины физического объёма), скорость (англ. velocity в смыслах как скорости прироста, так и необходимости высокоскоростной обработки и получения результатов), многообразие (англ. variety, в смысле возможности одновременной обработки различных типов структурированных и полуструктурированных данных)[5][6]. Полнота (все источники), Актуальность -> необходиомсть качать много и постоянно и быстро
  2. The Surface Web (also called the Visible Web, Clearnet, Indexed Web, Indexable Web or Lightnet,[1]) is that portion of the World Wide Web that is readily available to the general public and searchable with standard web search engines. It is the opposite of the deep web.[2] Глубокая паутина (также известна как невидимая сеть) — множество веб-страниц Всемирной паутины, не индексируемых поисковыми системами. Термин произошёл от соотв. англ. invisible web[1]. Наиболее значительной частью глубокой паутины является глубинный веб (от англ. deep web, hidden web), состоящий из веб-страниц, динамически генерируемых по запросам к онлайн базам данных[2].
  3. Нельзя считать информацию статичной – она не только растет вширь, но и движется, видоизменяется (сайты пополняют контент, обновляют изменяют существующие страницы, даже если контент не меняется – может изменяться мета-информация, связанная с контентом – количество цитирований, упоминаний, лайков, твитов, шейров данного контента). Сплошной бесконечный караван…
  4. Это очень хорошо и удобно Используйте это если вам хватает Недостатки дампов как правило большой объем и если вам нужна небольшая часть, топриходится качать много больше необходимого, Непонятно как обновлять, если у вас развернут один дамп, как накатить новую версию, а что если они не совмесимы? Плюсы Полная доступность всей информации сразу и официально
  5. Это очень хорошо и удобно Используйте это если вам хватает Недостатки апи Ограниченность - по доступным данным, по количеству запросов (можно обойти) Ваше приложение зависит от других людей (пример с инстаграмом) Плюсы Документированность Стабильность
  6. Sitemap предоставляет только ссылки Получаем актуальную инфу о содержании сайта Не весь сайт может быть покрыт Sitemap Получаем информацию о обновлении страницы В RSS как правило для статей и есть ещё и допинформация о статьях Последние 10 (N) статей, надо постоянно проверять Множество форматов RSS\Atom Никто эти форматы не соблюдает, надо парсить полувручную
  7. Много невалидного хтмл Умные эвристики
  8. Полное соответствие действиям пользователя, по сути единственный способ получить страницы SPA Очень медленно, нестабильно и ресурсозатратно Надо сводить к минимуму
  9. Disqus, 74.ру, livejournal Instagram ATI.SU АВИТО Google --Интернет-голосования Про капчу сказать что с браузером приходится делать скрин