Pull to refresh

Comments 31

Конечно интересно.

Было бы интересно вообще почитать о написании кравлеров простой или средней сложности на python (что-нибудь более сложное чем выкачивать и парсить определенную страницу раз в n часов)

Тогда скорее всего придется делить на две статьи — анонимизация в Python + (Tor | Proxy) и кравлинг в Python.
Можно начать с кравлинга и продолжить с анонимизацией учебного кравлера, хотя вам вообще видней с чего начинать :)
«Учебный кравлер» вряд ли будет, все же это своебразное know-how, но если будет цикл статей, то по кускам собрать получится.
Капча ломается через антикапча.ру и аналоги. 1-20$ за 1000, вводят капчу «негры», работает довольно быстро.
Нейронками, которые на основе белков созданы (мозг), ломаются практически все. Если, конечно, разработчики в принципе хотят кого-то через капчу пропустить. Как я уже говорил, на сервисах, типа антикапчи, ломаются практически все и в больших объемах.
Ну тут недалеко, не поверили в то, что сломать можно любую капчу, я подсказал очень простой и дешевый (по сравнению с стоимостью разработки) способ, как это сделать. Конечно, ничего не мешает пытаться писать finereader, это полезно для мозгов, но с точки зрения заказчика, как правило, это очень нерентабельно.
Неужели у вас все капчи взламываются «на раз»? Ой, сомневаюсь…

А если каждый юзер — «ручная работа», то проблематично делать по несколько тысяч юзеров, чтобы сделать нормальное, человекоподобное поведение!

Да и потом — на нормальных сайтах скрытые ловушки на javascript. Как их обходите?
Хабровская и «посчитай кисок» — нет. А так-можно получить неплохой результат на матричном/нейронном анализе. Обычно в кравлинге спешить некуда.

Дык, для регистрации индусы есть, дешево довольно.

В основном — разбирая тот же javascript, в совсем страшных и дорогих случаях — headless firefox.
Первый выход — использовать proxy. Минус — вам нужно поддерживать свою инфраструктуру, обновлять список proxy, передавать заказчику, и делать так чтобы это не завалилось в один момент.


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

Поэтому, обычно приходится писать свою приблуду без ограничений которая понемногу выкусывает рабочие проксики из всяких публичных источников.
А с какого кол-ва трафика / запросов начинается такой эффект, как отключение? Если пробегать по всему списку найденных прокси-серверов, а не тащить через один, пока не отключат? Таким образом кол-во обращений и трафика на еденицу времени будет падать. Или еще фильтры по контенту / url существуют?
Ну допустим у меня один акк на проксихантер какой-нибудь. На нем сидят 3-4 клиента. В среднем прокси отваливаются с такой интенсивностью что раз в час запрашивается новый список и… приехали короче.

Проще один раз написать свой движок и спокойно его пользовать.
> обхода защиты по User-Agent, анализу выдачи серверов
Вот это интересно. При чём больше анализ выдачи.
Не та часть, что про преобразование данных из того, что есть, в что, что нужно заказчику, а та, где мы понимаем, например, не водит ли нас за нос сайт. Например, если он нас спалил и выдаёт фейковую инфу.
А мы его так раз и сдали Яндексу и Гугле за клоакинг :)
Вы, кстати, неправильно поняли. Я как раз и говорю и возможностях борьбы с клоакингом.
Ну, код я выдавать не буду, не надейтесь )
А вот вкратце описать технологию анализа немного меняюшихся данных — это без проблем. Байес там, все такое…
Спасибо, очень интересно, жду.
Кривыми символам давятся: libxml, simplexml, dom, bSoap
Иногда встречаются монстры в кодировке utf-8 с кодами &1231; (типо со старой версии осталось).
Магазин в iso-чегототоам, товары попадают от поставщиков в utf-8 и расколупывай потом где там умляуты потерялись.
Про привычку iconv кричать «ойстрахбожий» и отвыливаться я цивильно промолчу.
Продолжать?
Как кодировки определяешь если в заголовках пусто/фигня всякая?
Я обычно игнорю заголовки. Данные принудительно переводятся в utf-8, в них впиливается корректный заголовок и так уже скармливается парсеру DOM. Определение текущей кодировки — местами know/how, местами частотный / морфологический анализ.
Для питона есть отличная библиотека, которая на 100% угадывает кодировку — chardet.
А мне бы было очень интересно прочитать про методики парсинга страницы. Наверняка должен быть какой-то универсальный подход, чтобы каждый раз для нового заказчика не изобретать велосипед.
Т.е. вот получили HTML-код. Есть, скорее всего, несколько (десятки?) основных типов страниц. Как наиболее правильно выцепить оттуда нужную информацию, как максимально упростить и автоматизировать процесс создания такого парсера.
Что значит «основные типы страниц». Существуют готовые процедуры — вытаскивания картинок из style="", обработки стандартных галерей, обработки цены + валюты. Написаны специфичные парсеры, т.е. для магазинов, для социалок итп. Вытаскивается все XPath.
> PHP систем есть два больших минуса — жрут и отваливаются.

Не надо выдавать за недостаток PHP неумение программировать. Я на нём достаточно краулеров и демонов написал. Самый сложный занимал 13 мегабайт ОЗУ.

Бога ради. На нем и генетический можно писать.
Sign up to leave a comment.

Articles