Архивы для категории ‘Мысли’.

Сбор информации на чужих компах ???!

На днях на одном из популярных порталов о поиске работы для фрилансеров weblancer.net заметил интересный проект, который дословно называется Сбор информации.

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

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

Думайте! И не ошибитесь!

С Новым Годом

Новый Год с ParserPro - профи по парсингу и граббингу информации

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

Отдельно я хотел бы поздравить своих клиентов, которые доверили свои проекты моим рукам и оставили столь приятные отзывы о моей работе на Weblancer.net и Webmoney.ru. Спасибо вам огромное! Обещаю, что Новый Год мы с вами встретим с новой парсинг-платформой, которая позволит собирать и обрабатывать миллионы записей в сутки.

Поздравляю всех! УДАЧИ!

P.S. До 6ого января я буду в отпуске, поэтому прошу всех моих великолепных заказчиков немного потерпеть. Когда я вернусь с новыми силами я удивлю вас своей производительностью! ;)

Такое сякое разное …

Наконец-то удалось немного разгрести гору заказов и написать.

На прошлой неделе очень интересно получилось с моим тестом-сравнением скорости работы preg_replace() и str_replace(). Я провел измерения, результаты были вполне предсказуемые, но YS.PRO подкинул новый опыт, по результатам которого скорость str_replace() превысила preg_replace() в 24 раза! Конечно, это больше чем я ожидал, хотя также вполне прогнозируемо.

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

Поэтому пока никаких больше тестов. Надо завершить все проекты, подготовиться к Новому Году и уехать куда-то отдыхать! :)

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

На этом все. Удаляюсь. В следующих постах обещаю рассказать об интересных функциях curl и умном взвешивании результатов при сборе картинок.

Удачи!

Новая услуга. Сбор изображений, аудио- и видеофайлов.

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

Спецификой работы по сбору подобного контента является то, что БД имеет второстепенное значение, в то время как выдвигаются дополнительные требования к дисковой системе и скорости интернет-канала. Все эти особенности учтены в разработанной мной системе GrabVIA, предназначенной ИСКЛЮЧИТЕЛЬНО для сбора вышеуказанного контента.

ТТХ услуги:

  • 2 сервера (для очень крупных заказов возможно выделение до 4 серверов);
  • неограниченное время сбора информации (24/7/365);
  • сбор информации блоками до 100 Гб (100 Гб собрали -> отгрузили заказчику -> приступили к сбору очередных 100 Гб).

В качестве входных параметров для начала предоставления данной услуги могут выступать:

  • текстовый файл с адресами файлов для скачивания;
  • парсинг страниц для нахождения контента для скачивания.

Также возможна автоматизация работы:

  • вы даете мне параметры для доступа к FTP и весь собранный контент, с указанной вами регулярностью, синхронизируется с вашим сервером (также возможно настроить синхронизацию БД, если попутно со сбором контента будет собираться какая-то информация или параметры).

Партнерская программа. Давайте зарабатывать вместе!

За прошедшие несколько месяцев парсинг, граббинг и сбор информации показали себя как достаточно актуальные и востребованные услуги на современном рынке IT-услуг.

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

С сегодняшнего дня в нашей компании действует партнерская программа на следующих условиях:

  1. За каждого приведенного мне клиента участник партнерской программы получает 20% от стоимости заказа клиента.
  2. Если участник партнерской программы привел более 5 клиентов, то он получает 25% от стоимости заказа с каждого последующего заказа.

Для регистрации в партнерской программе вы должны отписать мне на ICQ, либо на емейл (смотрите контакты), либо оставить комментарий к данному посту. От вас требуются следующие данные: ФИО, контактные данные.

Вот так все просто. Вы приводите заказчиков для нашей компании и зарабатываете деньги!

Новый рекорд

На очередном заказе я поставил новый личный рекорд по количеству собранных данных (отдельно собранные ссылки, картинки и прочее в счет не берем):

230 000 записей!

База собиралась изначально в 2 потока, а потом в 5 в течении 3х дней. В процессе работы над этим заказом я понял:

  • Что мне нужно купить новый компьютер :) (что я уже удачно и сделал);
  • Что для каждого проекта нужно писать контроллер процесса выполнения, чтобы случайная остановка сайта-источника на пару часов не останавливала процесс сбора информации и не привела к искривлению данных в базе;
  • Что в php memory_limit нужно ставить в значение 64М и постоянно вести мониторинг ресурсов, а то кто бы что не говорил, но php “течет” и это факт, доказанный практикой;
  • Что нужно проводить оптимизацию регулярных выражений (этому я думаю посвятить отдельную статью).

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

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

Кодекс чести парсинг-самурая

Данную заметку я написал для людей, которые всерьез занимаются парсингом и сбором информации.

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

Как по мне это совершенно неправильно, ведь помните как говорится - “Поступай с ближним так, как ты хочешь чтобы он поступал с тобой”. И исходя из этого изречения я постарался сформулировать несколько тезисов для профипарсеров:

  1. Перед началом работы проанализируйте статистику сайта-источника и выберите оптимальное для парсинга время.
    В настоящее время сделать это достаточно просто, так как большинство интересных и стоящих сайтов участвуют во множестве рейтингов, где можно увидеть их посещаемость не только по дням, но и по часам, что особенно важно. Благодаря этому вы можете подобрать время, когда сервер максимально разгружен. Чаще всего это период между 3-7 часами утра.
    Но это не значит, что вы должны в 3 часа утра сидеть перед компом. От вас требуется всего лишь нормально настроить свой компьютер, веб-сервер, поставить на компе будильник (есть такая опция в BIOS Setup) и правильно настроить крон для запуска скриптов.
    А если вы используете сервер хостера, то и того проще - просто поставить скрипт на крон.
    У этого совета есть еще и практически полезная сторона - в ненагруженные часы вы будете получать ответы от сервера-источника на порядок быстрее, чем в “час-пик”, что ускорить парсинг информации и поможет избежать перегрузок на второй стороне.
  2. Разбивайте процесс парсинга на максимальное количество независимых процессов.
    Очень часто процесс парсинга является двухуровневым или даже трехуровневым (или еще лучше сказать двухпроходным или трехпроходным), то есть происходит в несколько этапов: сбор ссылок -> парсинг страницы или проход каталога -> сбор ссылок (или прочих параметров) -> парсинг конечных страниц.
    И я в своей работе каждый этап стараюсь реализовать разными скриптами и запускать их в разные промежутки времени, чтобы снизить нагрузку на конечный сервер.
    Это очень удобно и в практическом плане позволяет разделить логику работы скрипта, что несомненно улучшает контроль за процессом и позволяет сделать этапы сбора информации независимыми.
    Конечно же минусом такого разбиения является увеличение времени разработки. Но поверьте, если проект крупный, то затраченное на этой стадии время окупится вам с лихвой.
  3. Ставьте паузы между запросами.
    Это важный момент (и парсеры поисковиков знают о чем я говорю :)). И вам не стоит его игнорировать.
    Если ваш парсинг предполагает обработку большого объема информации, то вам стоит добавить между запросами небольшие паузы, которые помогут разгрузить удаленный сервер. В противном случае вы можете забить пул запросов и сайт-источник может плавно умереть. И это поверьте мне это очень плохо, потому что тогда ваши действия могут трактовать как (D)DoS-атаку, а это уже уголовно наказуемо.
    В своей работе работе я, в основном, использую паузы длиной 100-500 мск.
  4. Используйте весь возможный инструментарий для снижения объемов передаваемой информации.
    При возможности (если это позволяет сервер-источник) используйте Content-Range в своих HTTP запросах (у curl для этого есть опция CURLOPT_RANGE). Это позволит вам сэкономить как свой траффик, так и траффик сервера-источника.
    К моему удивлению, Яндекс чего-то не захотел обрабатывать данный HTTP запрос.

Это основные правила, которых, как я считаю, должен придерживаться каждый профи и в основе которых лежит уважение к работе других.

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

Дополнительные ссылки:

4 шага к правильному сбору и обработке информации

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

Для работы над любым удачным проектом по сбору и обработке информации нужно:

  1. Определить все значимые параметры собираемой информации.
    Это очень важный этап, который все непонятно почему пытаются пройти как можно быстрее (наверное хотят побыстрее заработать).
    Пример.
    Заказчик попросил вас собрать базу компаний и вы без особых размышлений кинулись в бой.
    Но тут не стоит спешить. Надо уточнить:

    • по какому региональному признаку отбирать компании?
    • каким видом деятельности должны заниматься отбираемые компании?
    • какой юридической формы собственности надо отбирать предприятия?

    Нужно собрать как можно больше значимых признаков.

    Тут я привел очень простой пример, но на практике даже небольшое уточнение поможет сделать вашу работу быстрее и лучше.

  2. Найти источник информации
    На данном этапе следует произвести детальный поиск источника (источников) информации, который максимально удовлетворил бы всем значимым параметрам, которые вы определили в пункте 1. И поверьте мне, это не так уж и просто, как может показаться на первый взгляд. Поэтому я советую вам не концентрироваться на поиске какого-то одного идеального источника, а составить какую-то небольшую таблицу вариантов, из которых вы потом сможете выбрать самый лучший.
  3. Определить форму представления информации
    Если вам надо собирать все подряд и как попало, то этот этап вы можете смело откинуть.
    В противном случае стоит определить какие параметры вам стоит собирать, а какие не стоит.
    Например, очень часто у меня появляются заказы на сбор базы данных людей. Например, IT специалистов. Источником для такой информации выступают сайты поиска работы и профессиональные сайты. Но на том же сайте поиска работы в IT специалисты попадают даже наборщики текстов, которые, понятное дело, не нужны моему заказчику. Поэтому на основе данных, полученных в пункте 1, я составляю список совпадений и исключений, который и использую при сборе и анализе информации.
  4. Выбрать средства для сбора информации
    Для меня это очень просто – настроил парсер (хотя мне больше нравится слово паук) и в бой.
    А если у вас нет соответствующих навыков, то вы можете заказать подобную услугу у профессионалов, либо прибегнуть к каким-то программным средствам, которые уже далеко не редкость.Тут главное подобрать что-то достаточно гибкое и быстрое. Скорости стоит уделить особое внимание, потому что порой приходится собирать базы в миллионы записей и промедления даже в доли секунды на таких объемах будут значимыми.

Вот и все. Надеюсь, что мне удалось дать вам понимание процесса качественного сбора и анализа информации.

Если у вас будут вопросы, заказы или предложения – свяжитесь со мной.

Удачи!

Состояние рынка

Приступая к работе, я решил проанализировать состояние рынка услуг в сфере парсинга и грабинга информации.

Оказалось, что основными потребителями услуг в сфере парсинга (по мнению Гугла) являются оптимизаторы, которые используют данные инструменты в целях парсинга выдач поисковиков.

И соответственно отношение к подобным услугам в интернете сложилось “немного” негативное. Хотя я и не могу понять почему.

Для того, чтобы хоть как-то оправдать парсинг/грабинг приведу базовые концепции построение крупных проектов.

В основе построения крупных проектов могут лежать следующие 3 фундамента:

  • комьюнити: жж, форумы, социальные сети
  • команда: профессиональные журналисты, который постоянно пишут за деньги
  • грабинг/парсинг информации: новостные агрегаторы, порталы…

Очень часто используется смесь 2х или 3х этих инструментов.

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

Услуги

Один из потенциальных клиентов задал мне вопрос, “что же я предоставляю”.

Прошу извинить меня, если я где-то нечетко указал, что наша компания предоставляет УСЛУГИ парсинга/грабинга.

Проще говоря - услуги автоматизированного сбора информации под заданные вами параметры и с заданных вами сайтов.