Как стать автором
Обновить

Комментарии 82

Чем парсите? Можете в двух словах об архитектуре?

.net/chromium

Не раскрыта тема как вы парсите веб апликации, когда дата не ХТМЛ?

Судя из слова "chromium", через DOM

можно же через их API. Они же обычно через понятный json всё передают - даже собо муторно парсить не надо - просто десериализуй и всё!

Если у сайта есть API (используемый, к примеру, JS на сайте для динамического обновления страницы), ничего не мешает дёргать его, получать XML/JSON и уже дальше работать с ним

улыбнуло)))

раскрой тему как рубануть 20 лямов))

CEFlib (chromiumembedded) или какое-либо другое решение?

Для работы с хромом используется Selenium. А дальше уже получаем HTML код страницы и возвращаемся к случаю без хрома (AngleSharp для работы с DOM)

судя по упоминанию фингепринтов, могу предположить что сишарп+зенно

А если ли решение смены фингепринтов для селениума на Java?

Скажите кака самая популярная библиотека в энтрайпрайзе? Что учить, чтобы устроиться в такую же компанию как Ваша?

попробуйте, например, сопоставить аптечные препараты с фасовкой-граммовкой-литражом

С аптечным ассортиментом как раз всё достаточно просто, т.к. он не такой большой по сравнению с каким-нибудь китайским ширпотребом на маркетплейсах. По сути, единственная проблема - фасовка, масса и т.д. у всех продавцов в разном порядке идёт.

Я тут кончено мимокрокодил, но есть, что сказать по поводу аптечной номенклатуры.

Интересно становится, когда в наименовании лекарственного препарата есть МНН. Производителей может быть десятка два. Название производителя могут прибавлять, а могут не прибавлять к названию препарата. Одни укажут суффиксы типа «акос» и «гексал», другие нет. А ещё одну и ту же дозировку могут указать и в мг, и в мкг, и в г. Физраствор может быть и в мл, и в л. Это всё может быть и без сокращений. Или вообще размерность не укажут. Количество таблеток бывает «таб. №30», а бывает «упаковка контурная ячейковая (10) №3». Или ещё как-нибудь. И это без изделий медназначения с дичайшим бардаком в сокращениях внутри наименований.

По поводу величины ассортимента предлагаю сходить в этот реестр, прибавить сюда БАДы с ИМН. Если мне не изменяет память, только номенклатура списка ЖНВЛС представляет собой физически 2-3 пачки бумаги А4 с 9-м кеглем на обеих сторонах. По-моему до сих пор лежат в торговом зале почти каждой аптеки, на столике.

Не знаю, как всю эту красоту переносят из аптечных баз на сайты, но там вряд ли что-то сильно сложнее копипасты.

Добрый день.
Где берете прокси, каким сервисом пользуетесь?

ох. ребята кучу мобильных прокси покупают. разных.

Если не секрет, то примерно сколько данных в гб набегает за неделю парсинга и со скольки сайтов?

500 сайтов, где-то 20 Гб в неделю. Но мы чистим не храним

20 Гб в неделю? Что-то совсем мало а точнее не о чём.

Может быть 20 ТБ?

Это же не видео и не картинки, а текст насколько я понимаю.

Просто с 20 Гб в неделю непонятно, почему хранить их – проблема. Это примерно 1 Тб в год. Даже с RAID и бэкапом 3-2-1 хранить 1 Тб в год – это для бизнеса копейки.

Конечно, чужие деньги считать – так себе занятие, да и нет смысла платить за что-то, что не приносит прибыли, но, мне кажется, интерес к историческим данным вполне мог бы быть, а хранить данные хотя бы за последний год при 20 Гб / неделю обойдётся очень дёшево.

Надо уметь делать аналитику . А мы ещё слабы в этом

Если что, я вас не критикую, просто удивляюсь :) Мне просто кажется, что хранить пару терабайт вместо 20 Гб проблемой быть не должно, а если / когда вы вдруг решите заняться аналитикой – они у вас уже будут. А то ведь с данными такая подстава, что чтобы проанализировать данные за год, нужно вначале собирать их год :)

Плюс, возможно, вы могли бы предложить сторонним компаниям исторические данные для их аналитики на продажу. Возможно, покупатель бы нашёлся. Даже если найдётся один клиент, мне кажется, это окупит стоимость всего решения :)

Понимаю. Но честный ответ - так сложилось . Надо что то менять, но руки не доходят. Рутина

Только текст. Ссылки на картинки

Если это инкрементный парсинг только новых данных, то нормальные цифры. Там на трафик будет больше уходить на порядки (например, на 1 гб данных потребуется скачать 10 тб текстового трафика).

Текстовые данные (CSV), сжатые в ZIP архивы. Не знаю точно, сколько в распакованном виде бы весило, но всё же текст сжимается достаточно хорошо

Для одного из топ5 продавцов смартфонов велосипедил лет пять назад парсинг айфонов с сайтов основных конкурентов и телеграмм бота с данными. Было очень интересно, хотя и был удивлён, что это так и осталось инициативой одного аналитика (который попросил меня помочь), а после ухода его из компании - сошло на нет.
Скажите, почему железные северы оказались выгоднее виртуальных? Не очень ясно, как это может быть. А если бы не легаси, наверное лямбда и аналоги для этой задачи идеально подходят?

Лямбда и прочие облака может быть дорого и невыгодно.

при постоянной прогнозируемой нагрузке и стабильном коде - железо будет в этому конкретном случае(про статью) - дешевле.

В разы :)

Скажите, почему железные северы оказались выгоднее виртуальных?

Те кто предоставляют виртуальные сервера не всегда разрешают парсинг и в один момент вся система может перестать работать "из-за большого числа подозрительных запросов мы решили на время ограничить... обратитесь в тех. поддержку"

Да. Поэтому только железо

Сайт ЦИК с результатами выборов пробовали парсить? А то, помню, там очень «оригинальная» защита от парсинга в виде кастомного шрифта, встречалось ли такое где-то еще?
НЛО прилетело и опубликовало эту надпись здесь

Никогда не просили !

Не пробовали с некоторыми часто парсимыми сайтами со своей стороны договариваться о предоставлении структурированных данных (условно - платное API, например)? Им нагрузка меньше, вам быстрее это всё получится обработать, может со своей стороны сэкономленное время как-то им компенсировать.

Скорее всего, после того, как владельцы таких сайтов узнают о факте парсинга, они постараются сделать данные менее читаемыми :)

Я правильно понимаю, что если парсить и хоть чуть-чуть все-таки анализировать или там раскладывать по категориям а-ля "принадлежащих Императору, набальзамированных, прирученных", то можно зарабатывать еще больше?

А ещё можно "немножечко шить".

Да. Вы правы. Но здесь надо очень серьезно вникать в аналитику данных

Добавил бы, что частенько у топов есть свои приложения для телефонов и они, как правило, тянут всё через api, перехватить пару запросов от такого приложения достаточно чтобы понять как распарсить всё. При этом на запросы к api от мобильных часто нет никаких ограничений по RPS, а то и есть возможность качнуть всю базу целиком.

Приложения зачастую защищают от перехвата трафика, не только чтобы парсерам жизнь усложнить, но и для безопасности, если например платежи встроены. Запросы могут подписываться. В общем больше нюансов, чем на сайтах. Это всё обходится, конечно, и в каком-то конкретном случае приложение может быть защищено слабее, чем сайт, но в среднем собирать данные из приложения сложнее. Ну и плюс данные в приложении и на сайте могут отличаться.

В теории да. Иногда приходится ковыряться и в самом приложении. Но профит от парсинга api в итоге компенсирует затраченное время. Кстати, иногда сайты тупят и падают, иногда в процессе парсинга, что создаёт проблемы качества данных. Api делают это гораздо реже. Скорость, полнота и простота парсинга куда лучше. Во всяком случае в своих проектах я предпочитаю найти/расковырять api, нежели регулярками парсить килотонны html.

Опять же добавлю, что если уж парсить html то как правило проще это делать с мобильными версиями сайтов, если таковые имеются.

Я бы не противопоставлял скачку веб-версии скачке через апи, это разные категории. Тут смотря как качать, конечно, можно через браузер страницы открывать (puppeteer, selenium и т. д.) и разбирать DOM, не работая с api сайта напрямую.

Но при больших объёмах это плохо масштабируется. А если качать без браузера, просто делать http запросы и разбирать респонсы, то и веб версии обычно через апишку качаются. А если нет json api на сайте, то часто и мобильное приложение получает html и отображает через webview. Правда ещё чаще это какой-нибудь мелкий сайт без приложения вообще.

А парсить html регулярками в любом случае не стоит, xpath обычно.

Спасибо за интересную статью. По поводу легальности — у меня есть одно замечание:

Но эти роботы действуют одинаково.
Да, но суть не в роботах, а в том, что дальше происходит с данными. В большинстве случаев можно совершенно легально собирать данные из открытых источников для личного использования, для научной работы или для обучения.

Но как только вы эти данные начинаете собирать с целью передачи третьим лицам (в данном случае вашим заказчикам), то тут уже _могут_ возникнуть нюансы. Пример с Гуглом был бы корректен, если бы Гугл данные с вашего сайта передавал кому-то дальше.

Я абсолютно не в теме законодательства вашей страны, но полагаю, что опытный юрист может зацепиться именно за факт последующей передачи данных, а не их сбора как такового.

Но человек может собрать и передать. Мы же просто автоматизируем . В общем пока работаем :)

Да нормально работаете в правовом поле.

бизнес должны работать в правовом поле, а не рассматривать свое существование как этичное или нет .

Вы даже представляете сколько раз я слышал подобную аргументацию в суде. Причем суд принимал ее как обязательное к исполнению. Ведь это так в действительности, так как суд не оценивает этические предпосылки в обществе, а только находится ли то или иное действие в правовом поле.

Ну а на счет использования этих ваших действий против Вас в юридическом процессе, то последствия зависят только от квалификации представителя, как Вашего так и противной стороны. Если попадетесь акуле юриспруденции, то шансы уцелеть небольшие. Но не думаю, что их так много, и ущерб от Ваших действий сопоставим с вознаграждением этой акулы.

Ну если появится такая акула на вашем горизонте в РФ, то обращайтесь. Мне будет прикольно с ней познакомится.

Посмотрел обоснование Вашей позиции по поводу законности парсинга и, можно сказать, что достаточно обосновано. Из того что просмотрел попалась один аспект, но его можно нивелировать выдвижением условия "надлежащий истец". А так молодцы

спасибо

Можно подумать что гугл яндекс и прочие поисковики не продают)))

это самая ценная информация о людях

Вообще мне кажется, что бизнес должны работать в правовом поле, а не рассматривать свое существование как этичное или нет.

По скользкой дороге ходите..

Я парсю, в основном, финансовые данные. Есть 4 варианта:

  1. Когда есть нормальный API, запросы которого можно отловить через отладчик браузера. Готовые данные, бери и юзай. Только не забыть подставить заголовки, типа, тоже браузер.

  2. Данные отдаются в виде HTML. Вариант похуже, зажмуриваемся и парсим.

  3. Используется хитрый API с защитой по токену, с использованием кук и прочих барьеров. Такой, например, используется на spbexchange. Тогда приходится запускать полновесный браузер с селениумом.

  4. Данные в виде картинок, например, графики котировок. Признаём своё поражение, ищем жертву посъедобнее.

С помощью selenium/pupputeer такое реализуемо?

Да

Можете посоветовать какой либо дефолтный набор ключей для chromedriver?

В сети много «советчиков», данные от которых или безнадежно устарели, или не имеют отношения к боевому использованию.

Подскажите пожалуйста как решили проблему с приемом платежей из Казахстана?

Открыли в банке модуль счёт

А где фингерпринты валидные берете?

НЛО прилетело и опубликовало эту надпись здесь

Обязательно. Настроили парсинг 1 раз, а продажа одной и той же базы идет нескольким клиентам.

НЛО прилетело и опубликовало эту надпись здесь

https://xmldatafeed.com тут полно примеров бесплатных :)

НЛО прилетело и опубликовало эту надпись здесь

У авито одна из самых топорных защит, попробуйте обойти например DataDom. Хотя, я думаю, вы пытались)

Круто! Спасибо!

На заре своего фриланса занимался парсингом тоже. Очень интересная и динамичная работа.

Удачи в таком труде. Судя по вашему тексту, у вас принципиальная позиция делать все в открытую и на законных основаниях. Достойно!

Если говорить про абсолютные цифры, то нормальным считаем парсинг данных с карточки одного товара в 3-4 секунды.

Как это понять?

  1. Каждые 3-4 секунды вы проверяете обновление цены на 1ин товар? Т.е. при 100 тысячах товаров в магазине, каждые 3-4 секунды делаете 100 тысяч запросов?

  2. Парсите по 1ому товару в 3-4 секунды? Кхм... ~21 тысяча товаров в сутки, что маловероятно

  3. Если это время за которое вы обрабатываете один товар, то непоянтно, каким образом это связано с нагрузкой оказываемой на сайт?

Один товар в пару секунд

Можно сделать бота, который будет покупать товар в момент появления скидки?

Легко ;)

Сделайте такой сайт. Покупатор, например, назвать

НЛО прилетело и опубликовало эту надпись здесь

Но зачем он нам? Что с ним делать ?

НЛО прилетело и опубликовало эту надпись здесь

Спасибо , но пока в голове не укладывается

Часто ли встречаются сайты, на которых данные подгружаются через API и вместо парсинга используете это самое API?

редко

У нас 30% или более, если нет на сайте, то будет в приложение магазина.

я понимаю, что парсинг сразу настраивает на негатив

Почему негатив? Был какой-то сайт, выдавал графики изменения цен на товары. Очень позитивно и полезно было, часто заходил туда и смотрел. Потом закрылся, к сожалению.

Попробуйте shopintab. Не реклама.

Ха-ха. Хотите верьте, хотите нет - писал парсинг конкурентов для клиента средствами 1С. Даже динамические страницы парсятся на отлично. Не думал что на этом можно построить целый бизнес.

Почему недвижимости нет совсем? По Авито понятно, а Циан? Неужели нет запросов?

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории