Под неусыпным присмотром: как следить за тарифами хостеров и поддерживать актуальность каталога VPS

    В далеком 2013 году я написал сайт Поиск VPS, и к моменту первой публикации на Хабре в каталоге была информация о 150 хостерах и более чем 1200 тарифах. Добавление такого массива информации не заняло много времени, так как в первой версии сайта я показывал только основные параметры тарифов (стоимость, объем диска, объем оперативной памяти, частоту процессора, количество трафика, страну размещения и тип виртуализации). Вся эта информация была представлена на сайтах хостеров, поэтому кроме рутинного копирования этих данных в админку сайта ничего не нужно было делать.



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

    Однако, как оказалось, наполнить каталог было не самым тяжелым: тарифы хостеров постоянно менялись, и нужно было оперативно реагировать на эти изменения и вносить правки.

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

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

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

    Со временем я пришел к мнению, что следить за обновлением тарифов нужно самостоятельно, и периодически делать проверку всех тарифов хостера своими силами. Хотя на это требуется много времени и ресурсов, но с таким подходом тарифы должны быть максимально актуальны. У такого подхода есть минус в плане затраченных ресурсов: у большинства хостеров тарифы меняются довольно редко, а проверять их все равно нужно, поэтому в большинстве случаев редакторы просматривают тарифы и не находят никаких существенных изменений. Основной недостаток с точки зрения актуализации тарифов — это невозможность моментально реагировать на изменения. То есть, если мы проводим проверку раз в месяц, и у какого-то хостера проверили тарифы 1-го числа, а 2-го числа хостер обновил их, то почти месяц у нас будут показываться неактуальные данные. Однако, частично эта проблема решена: некоторые хостеры после обновления своих тарифов отправляют запрос на внесение изменений.

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

    Самое первое, что я попробовал сделать — это проверять страницы сайтов хостеров на изменения и начал с главной каждого сайта. Идея состояла в следующем: если на сайте хостера что-то поменялось, то редакторам отправляется сигнал, и они вручную проверяют, что поменялось, а при необходимости вносят правки в тарифы. Таким образом можно было бы быстро следить за изменениями. Да, в этом случае было бы много ложных срабатываний, когда хостер поменял не характеристики тарифа, а что-то другое, однако, на мой взгляд, лучше выполнить проверку и ничего не найти, чем пропустить какое-то изменение. Скрипт был написан довольно быстро, а принцип работы его предельно прост: скачиваем html страницу, берем md5 и сохраняем в базу. Через сутки повторяем процедуру и сравниваем с уже сохраненным значением — если они не совпадают, значит на странице произошли изменения, и нужно вручную посмотреть, что именно изменилось. Этот вариант мне казался идеальным с точки зрения удобства: не нужно писать никаких парсеров html кода — просто ищем изменения и все. Однако, на следующий день после запуска проверки редакторам пришло уведомление, что у большинства хостеров произошли изменения. Это было немного странно, и я решил проверить, из-за это случилось. Причина оказалась банальна, и она полностью отвергла мою идею проверять изменения в html коде: очень у многих хостеров на страницах находились данные, сгенерированные автоматически (например, информация о времени генерации страницы и т. д.), таким образом идея разбилась о суровую реальность, и этот метод проверки не сработал.

    Вторая идея, которая пришла мне в голову — это проверка изменений через API биллингов. Однако, тут тоже есть свои недостатки. Во-первых, API есть только у биллинга BILLmanager, что не так плохо, так как этот биллинг использует около 40% хостеров. Вторая проблема — это нестандартизированное описание характеристик тарифа в биллинге, из-за чего опять возникает ситуация, когда нужно просто следить за тем, поменялось ли что-нибудь, и, если изменилось, уже вручную смотреть, что именно и нужно ли вносить правки. Плюс непонятно, что делать с биллингом WHMCS, которым тоже пользуются много хостеров, менее популярными RootPanel и BPanel, а также другими биллингами, которые написали сами хостеры.

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

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

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

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

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

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


    Заглядывайте на VPS.today — сайт для поиска виртуальных серверов. 1500 тарифов от 130 хостеров, удобный интерфейс и большое число критериев для поиска самого лучшего виртуального сервера.

    Поиск VPS
    57,00
    Помогаем найти самый лучший виртуальный сервер
    Поделиться публикацией

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

      0

      Для расчета контрольной суммы нужно брать только блок с тарифами, а не все страницу с новостями и

        0
        стоит учитывать изменение верстки как минимум, а если у хостера SPA или данные через js вставляются тут уже простым запросом не обойтись, как на меня это решения для избежания реализации и развитии полноценного решения
          0
          Изменение верстки не столь частое явление, как написано в статье, ложно срабатывание это не проблема. Также можно считать контрольную сумму js.
        0
        Личный кабинет + модерация + API
        До прохождения модерации отображать старые тарифы, при поступлении на модерацию пусть вам приходит уведомление чтоб по возможности быстро реагировать, а API поможет стандартизировать поступление данных вот только надо будет хостерам самим или сообществу написать мдули для панелей
          +1
          Пробовали готовые инструменты для отслеживания изменений вебсайтов? github.com/thp/urlwatch кажется вам подошёл бы практически идеально.
            0
            Тут проблема в том, что нам нужен какой-то инструмент который не нужно будет настраивать. В каталоге оооочень много хостеров и для каждого сайта хостера добавлять какие-то параметры для отслеживания не реально. То есть нужно подать на вход много сайтов без какой-либо дополнительной настройки…
            +1
            тут все просто, каждый месяц как «дайджест» делать, проходить и вручную все сверять. никаких усложнений делать не нужно. рабочую силу рук не стоит недооценивать :) можно и 3500 активных выделенных серверов вручную содержать как ты знаешь.
              0
              Ну вот это сейчас как раз и делается, но может возникнуть ситуация что какого-то хостера мы проверили 2-го числа, а 3-го числа он обновил тарифы и следующая проверка будет только через месяц. В результате этот месяц тарифы будут неактуальные…
              +1
              Все просто — нужно выяснить кто кому гонит трафик:
              1. Если Вы хостерам — приходите и говорите: «присылаете мне свои актуальные прайсы и параметры вот в таком формате раз в неделю, а то вычеркну вас из каталога и потеряете кучу денег».
              2. Если хостеры вам, то мучаетесь парсите ручками, пока не добьетесь п.1 ;)
                0
                У меня первый пункт, но, к сожалению, такой вариант не сработает. Ну или в каталоге останется 10-20% хостеров от текущего числа.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое