Pavel
а если нужно миллион прайсов - запускаем миллион парсеров?
Так от задачи зависит. Это может быть парсинг в 10 потоков с чтением задачи из очереди. А может быть парсинг в один поток А может и в миллион. Главное чтобы решение вменяемо скалировалось. А дальше - вопрос исключительно задачи
Pavel
Парсинг как таковой - изумительно легко скалируемая задача, элементарно параллелящаяся.
Anonymous
Парсинг вне пределов рф называется кравлингом или скраппингом
Anonymous
Как и термин хайлоад за пределами рф не существует
Pavel
Как и термин хайлоад за пределами рф не существует
Достаточно часто вижу подобный термин в описании западных вакансий.
Anonymous
Заразно, видимо
Anonymous
Раньше не было
Anonymous
Кстати на авито адова защита от сбора данных
Anonymous
Прям ощущеное что всеми силами обороняются
Anonymous
Может возникнуть проблема и со скейлингом в т.ч.
Pavel
Парсинг вне пределов рф называется кравлингом или скраппингом
Эти термины в среднем означают парсинг веб сайтов. Ну то есть некоторый нюанс неэтичности присутствует. Во всяком случае в тех ситуациях где я видел употребление этих терминов. Если не прав - поправьте
Pavel
Anonymous
Шардинг чего? Проксей?
Anonymous
Чет недогоняю
Pavel
Шардинг чего? Проксей?
А я не догоняю где именно проблемы со скалированием
Anonymous
Ну они могут по количествц реквестов с хоста выдать например фальшивую страничку
Pavel
А сорян. Это про парсинг авито проблемы а не у авито
Anonymous
Где разметка та же но ссылки битые
Anonymous
Дада , когла обходишь авито очень много сюрпризов
Pavel
И? Ну чтобы были проблемы - нужно трудно скалируемое место.
Pavel
Какой нить шаред - стейт,с высокой консистентностью. Собственно где именно вы видите ботл нек.
Anonymous
Ну да, наверное я не прав. Но при грамотном ведении кравлера в никуда со стороны авито, число потоков может разрастись без полезной работы
Anonymous
Но это нааерное уже не скейлинг
Pavel
Ну изначально речь шла о парсинге прайсов. Тут кмк из контекста следует что прайс получен легально. Ну а в вашем случае - просто более сложная стратегия создания задач с распределением по проксям и желательно с детектором фальшивых страниц
Anonymous
Ааа, я подумал что прайс берётся с хтмл страничкм
Anonymous
Я весь их диалог короче воспринял как про кравлинг магазинов типа авито яндекс маркета и т.п.
Anonymous
Вообще я люблю хедлесс хромом добывать такие вещи, чтобы не изобретать свои костыли
Pavel
Вообще я люблю хедлесс хромом добывать такие вещи, чтобы не изобретать свои костыли
Ну если задача отрендерить страницу, замаскироватся под обычного юзера... То вполне норм. Если же это не обязательно - то curl просто дешевле
Anonymous
Благо как хромовые фермы строить известно еще со времен селениума))
Pavel
Я кстати задачу на собес как то давал. Просил спарсить кусок авито) махонький, чтобы под фильтры не попасть
Anonymous
Хром хорош тем, что и для динамического контента годится, т.е. для спа и прочих жс-приложений. И я имел в виду не рендеринг а просто сбор данных со странички
Anonymous
Хотя да, жс-контент это уже тоже рендеринг
Pavel
Много кто решил?
Так там элементарно. Типо расскажи какие категории в авито есть
Pavel
Как два пальца
Pavel
В один запрос делается
Pavel
Ну и дальше разные услоднения. А если в два потока. Аа если количество объявлений по категориям. А если в параллель. А если добавить очередь А если добавить прокси ... В общем можно круто развернуться.
Snusmumriken
Ну и дальше разные услоднения. А если в два потока. Аа если количество объявлений по категориям. А если в параллель. А если добавить очередь А если добавить прокси ... В общем можно круто развернуться.
В целом, это проверка человека на способности к реверс-инжинирингу. Способность нажимать f12 у хрома и анализировать запрос-ответы. Правда, именно для авито (и других обороняющихся) нужен ещё чуть более узкоспециализированный набор знаний.
Serezha
а по факту в чатике хайлоад чемпионата от мейла обсуждали запросы чувака который массово парсит авито и потом продает эти фиды и не смогли нормально придумать вменяемые решения на его специфичные запросы
Serezha
например если в базе лежит миллиард объявлений и нам нужно для всех клиентов держать флаги какие объявы он запрашивал какие нет - чтобы списать деньги со счета корректно
Snusmumriken
ты правильно написал. только громко названо - реверс-инжениринг.
Не очень громко, потому что у кучи сайтов с "защитой от скрапинга", например, время от времени подгружается кусок сгенрированного обфусцированного жаваскрипта, который генерирует кусочек DOM'а, который, например, вставляет в документ картинку с капчей. И вот тут уже нужно потеть, разбирать обфусцированный код, запускать его в песочнице, смотреть что он делает, на основе этого писать свои луёвые скрипты (например, выдирая статику из того жаваскрипта и проворачивая такие же операции но на луях). Это только пример, может быть что-то другое но не менее стрёмное. Headless chrome безусловно делает то же самое за тебя, но тут маленькая проблемка, под названием "кошмарно медленно".
Serezha
то есть задача в целом ясная и хорошо скейлится - но по факту из за всяких задрочек типа защиты или смены формата выдачи - сложно доводимая до рабочего состояния на сложных и больших сайтах
Serezha
правда прайсы я не парсил и не знаю как там
Snusmumriken
то есть задача в целом ясная и хорошо скейлится - но по факту из за всяких задрочек типа защиты или смены формата выдачи - сложно доводимая до рабочего состояния на сложных и больших сайтах
Нет, хорошо скейлится, более чем доводимая до рабочего состояния даже на отчаянно сопротивляющихся сайтах (пул тасков, пул прокси, рукапча и т.п.). Тут в другом проблема: если ты подписался на такое, тебе свои парсилки нужно непрерывно переделывать до конца своих дней, ибо сайты непрерывно меняются. А ещё лепить сверху кучу статистики, которая следит за корректностью парсинга и т.п, ибо каждый раз руками проверять "правильные ли ещё тут алгоритмы" — такое себе дело. Я шарю ибо работаю в этой области.
Serezha
Нет, хорошо скейлится, более чем доводимая до рабочего состояния даже на отчаянно сопротивляющихся сайтах (пул тасков, пул прокси, рукапча и т.п.). Тут в другом проблема: если ты подписался на такое, тебе свои парсилки нужно непрерывно переделывать до конца своих дней, ибо сайты непрерывно меняются. А ещё лепить сверху кучу статистики, которая следит за корректностью парсинга и т.п, ибо каждый раз руками проверять "правильные ли ещё тут алгоритмы" — такое себе дело. Я шарю ибо работаю в этой области.
эмм ну вот допустим сайт масштаба авито тратит на свою серверную инфраструктуру в месяц ну допусти 100К долларов - и допустим ты его парсишь и складываешь все в архив как в том реальном сервисе о котором я выше писал - и по факту ты для клиентов должен решить те же задачи масштабирования над которыми авито бьется - и в каком же разе это просто?
Serezha
>> Alexander Paderin, [28 Feb 2019 at 23:51:07]: на самом деле я не знаю как Авито все это хранит и менеджит, но мне пришлось дофига разных задач решать пока все это взлетело и начало работать на потоке вот некторые из них: - отказоустойчивый, адаптивный скрапер - распределенное хранилище с репликацией для 12TB+ данных - монго реплика 3 ноды - вот этот калькулятор выгрузок - скриншоты объяв - получение, хранение - монетизация и интеграция с платежниыми сервисами фронэнд правда года 3 не обновлял, делал еще на RC Ангуляра2 )))) есть апи, через кторый можно массово выгружать и делать расчеты да и ваще дофига всего))) даже апи дока есть https://ruads.org/assets/manual/api_30.06.17.pdf
Pavel
за счет этогл экономия
Serezha
я выше кинул цитату кто считает что это просто - запускайте ракеты 🙂
Pavel
посыл был в том что задачи пасринга паралелятся легко.
Snusmumriken
Плюс грабится обычно гораздо меньше данных чем сайт содержит, а ещё тебе обычно не нужно в реальном времени вообще всё грабить, полностью дублируя базу авито, это извращение. Ты обычно грабить какую-то категорию и мониторишь цены.
Pavel
а не в алгоритмической сложности самой задачи
Snusmumriken
В миллиард раз.
Serezha
ну коллеги я щаз пишу про промышленные решения прасинга за которые клиенты платят большие деньги
Serezha
как я помню топикстартер хотел хайлоад систему по агрегации данных с кучи сайтов
Артём
как я помню топикстартер хотел хайлоад систему по агрегации данных с кучи сайтов
Да, но парсинг но нужно признать, что парсинг это план Б, а план А - это добровольная отдача прайсов поставщиками.
Артём
все равно спасибо, что описали проблемы парсинга
Snusmumriken
ну коллеги я щаз пишу про промышленные решения прасинга за которые клиенты платят большие деньги
Хехехе, ващет на "простое" решение парсинга есть клиенты, которые платят большие деньги )) Иначе не нужны были бы все эти пулы тасков и проксей. Все эти системы, если что, работают по минималочке. Надо успевать обрабатывать десять запросов в секунду (на самом деле, обработка в реальном времени растягивается на минуту-полторы)? Будет обрабатывать так. Нужно больше? Будут городить больше пулов, больше тасков и т.п.
Serezha
раз уж такая тема пошла подскажите прокси хорошие. я сейчас работаю с https://luminati.io/#pricing
Serezha
там 20К айпи адресов выдается
Snusmumriken
Пофигу, абсолютно любая прокси которую ты купишь за деньги будет нормальной.
Serezha
в дешманском плане
Anonymous
За деньги нормальная? Чет не факт
Anonymous
Иногда просто недоступна
Anonymous
Иногда авито знает эти проксм
Serezha
у люминати есть план с 12 млн айпишников включая мобилки
Serezha
ого уже даже 40 млн
Pavel
Иногда авито знает эти проксм
так списки засвеченых ip регулярно продаются.
Snusmumriken
О, пардон, если эта прокси работает как условно один адрес, который каждый раз редиректит на другой айпишник — это плохое решение для скрапинга. Тебе должны выдать конкретный список адресов прокси, которые могут держать сессию и не меняются пока тебе нужна сессия. Скрапинг сайтов это, регулярно, несколько запросов в течение одной сессии.
Snusmumriken
Привет Вад, расскажи немного о себе
Anonymous
Скажи, что ты не бот