Serezha
Pavel
а если нужно миллион прайсов - запускаем миллион парсеров?
Так от задачи зависит.
Это может быть парсинг в 10 потоков с чтением задачи из очереди.
А может быть парсинг в один поток
А может и в миллион.
Главное чтобы решение вменяемо скалировалось.
А дальше - вопрос исключительно задачи
Pavel
Парсинг как таковой - изумительно легко скалируемая задача, элементарно параллелящаяся.
Anonymous
Парсинг вне пределов рф называется кравлингом или скраппингом
Anonymous
Как и термин хайлоад за пределами рф не существует
Anonymous
Заразно, видимо
Anonymous
Раньше не было
Anonymous
Кстати на авито адова защита от сбора данных
Anonymous
Прям ощущеное что всеми силами обороняются
Anonymous
Может возникнуть проблема и со скейлингом в т.ч.
Pavel
Anonymous
Шардинг чего? Проксей?
Anonymous
Чет недогоняю
Anonymous
Ну они могут по количествц реквестов с хоста выдать например фальшивую страничку
Pavel
А сорян. Это про парсинг авито проблемы а не у авито
Anonymous
Где разметка та же но ссылки битые
Anonymous
Дада , когла обходишь авито очень много сюрпризов
Pavel
И? Ну чтобы были проблемы - нужно трудно скалируемое место.
Pavel
Какой нить шаред - стейт,с высокой консистентностью.
Собственно где именно вы видите ботл нек.
Anonymous
Ну да, наверное я не прав. Но при грамотном ведении кравлера в никуда со стороны авито, число потоков может разрастись без полезной работы
Anonymous
Но это нааерное уже не скейлинг
Pavel
Ну изначально речь шла о парсинге прайсов.
Тут кмк из контекста следует что прайс получен легально.
Ну а в вашем случае - просто более сложная стратегия создания задач с распределением по проксям и желательно с детектором фальшивых страниц
Anonymous
Ааа, я подумал что прайс берётся с хтмл страничкм
Anonymous
Я весь их диалог короче воспринял как про кравлинг магазинов типа авито яндекс маркета и т.п.
Anonymous
Вообще я люблю хедлесс хромом добывать такие вещи, чтобы не изобретать свои костыли
Pavel
Anonymous
Благо как хромовые фермы строить известно еще со времен селениума))
Pavel
Я кстати задачу на собес как то давал. Просил спарсить кусок авито) махонький, чтобы под фильтры не попасть
Anonymous
Хром хорош тем, что и для динамического контента годится, т.е. для спа и прочих жс-приложений. И я имел в виду не рендеринг а просто сбор данных со странички
Anonymous
Хотя да, жс-контент это уже тоже рендеринг
Anonymous
Pavel
Много кто решил?
Так там элементарно. Типо расскажи какие категории в авито есть
Pavel
Как два пальца
Pavel
В один запрос делается
Pavel
Ну и дальше разные услоднения. А если в два потока. Аа если количество объявлений по категориям.
А если в параллель.
А если добавить очередь
А если добавить прокси
...
В общем можно круто развернуться.
Pavel
Serezha
Serezha
а по факту в чатике хайлоад чемпионата от мейла обсуждали запросы чувака который массово парсит авито и потом продает эти фиды и не смогли нормально придумать вменяемые решения на его специфичные запросы
Serezha
например если в базе лежит миллиард объявлений и нам нужно для всех клиентов держать флаги какие объявы он запрашивал какие нет - чтобы списать деньги со счета корректно
Snusmumriken
ты правильно написал.
только громко названо - реверс-инжениринг.
Не очень громко, потому что у кучи сайтов с "защитой от скрапинга", например, время от времени подгружается кусок сгенрированного обфусцированного жаваскрипта, который генерирует кусочек DOM'а, который, например, вставляет в документ картинку с капчей. И вот тут уже нужно потеть, разбирать обфусцированный код, запускать его в песочнице, смотреть что он делает, на основе этого писать свои луёвые скрипты (например, выдирая статику из того жаваскрипта и проворачивая такие же операции но на луях). Это только пример, может быть что-то другое но не менее стрёмное. Headless chrome безусловно делает то же самое за тебя, но тут маленькая проблемка, под названием "кошмарно медленно".
Serezha
то есть задача в целом ясная и хорошо скейлится - но по факту из за всяких задрочек типа защиты или смены формата выдачи - сложно доводимая до рабочего состояния на сложных и больших сайтах
Serezha
правда прайсы я не парсил и не знаю как там
Serezha
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
Pavel
за счет этогл экономия
Serezha
я выше кинул цитату кто считает что это просто - запускайте ракеты 🙂
Pavel
Pavel
посыл был в том что задачи пасринга паралелятся легко.
Snusmumriken
Плюс грабится обычно гораздо меньше данных чем сайт содержит, а ещё тебе обычно не нужно в реальном времени вообще всё грабить, полностью дублируя базу авито, это извращение. Ты обычно грабить какую-то категорию и мониторишь цены.
Pavel
а не в алгоритмической сложности самой задачи
Pavel
Snusmumriken
В миллиард раз.
Serezha
ну коллеги я щаз пишу про промышленные решения прасинга за которые клиенты платят большие деньги
fgntfg
Serezha
как я помню топикстартер хотел хайлоад систему по агрегации данных с кучи сайтов
Артём
все равно спасибо, что описали проблемы парсинга
Snusmumriken
ну коллеги я щаз пишу про промышленные решения прасинга за которые клиенты платят большие деньги
Хехехе, ващет на "простое" решение парсинга есть клиенты, которые платят большие деньги ))
Иначе не нужны были бы все эти пулы тасков и проксей.
Все эти системы, если что, работают по минималочке. Надо успевать обрабатывать десять запросов в секунду (на самом деле, обработка в реальном времени растягивается на минуту-полторы)? Будет обрабатывать так. Нужно больше? Будут городить больше пулов, больше тасков и т.п.
Serezha
раз уж такая тема пошла подскажите прокси хорошие. я сейчас работаю с https://luminati.io/#pricing
Serezha
там 20К айпи адресов выдается
Snusmumriken
Пофигу, абсолютно любая прокси которую ты купишь за деньги будет нормальной.
Serezha
в дешманском плане
Serezha
Anonymous
За деньги нормальная? Чет не факт
Anonymous
Иногда просто недоступна
Anonymous
Иногда авито знает эти проксм
Serezha
у люминати есть план с 12 млн айпишников включая мобилки
Serezha
ого уже даже 40 млн
Snusmumriken
О, пардон, если эта прокси работает как условно один адрес, который каждый раз редиректит на другой айпишник — это плохое решение для скрапинга. Тебе должны выдать конкретный список адресов прокси, которые могут держать сессию и не меняются пока тебе нужна сессия. Скрапинг сайтов это, регулярно, несколько запросов в течение одной сессии.
Serezha
Snusmumriken
Привет Вад, расскажи немного о себе
Anonymous
Скажи, что ты не бот