Методика

Мы не переписываем цены с витрин, а считаем, во что обойдётся ваш объём у каждого сервиса. Здесь написано, как именно: откуда берётся каждая цифра, что значит отметка рядом с ней, когда цена перестаёт участвовать в сравнении и чего мы не делаем ни за какие деньги. Страница обновляется вместе с данными — числа в ней посчитаны на той же сборке, что и таблицы.

Что здесь есть на самом деле

Сейчас в каталоге 69 цен по 21 сервису в 10 типах прокси. У 67 из них стоит ссылка на страницу, где мы эту цифру видели, — по ней можно проверить нас руками.

Это немного, и мы не делаем вид, что много. Порог включения сервиса — не «нашли сайт», а «умеем получать цену и знаем, как она устроена»: сервис, чью цену мы не можем ни получить автоматически, ни объяснить, в каталог не идёт. Расти быстрее, чем успеваем проверять, — убыток, а не рост: двести цен неизвестной свежести хуже сорока проверенных.

Как считается «итого»

Цена у прокси почти никогда не одна. Обычно это лестница скидок: чем больше берёте, тем дешевле единица. Мы берём ту ступень, в которую попадает ваш объём, умножаем на объём и сравниваем с минимальной покупкой, если она есть.

объём × цена на этой ступени = итог
но если итог меньше минимальной покупки — итогом становится она

Второе правило важнее первого. Пример: сервис берёт $2 за гигабайт, но не продаёт меньше чем на $50. Вам нужно 10 GB — по цене это $20, а заплатите вы $50. Строка получает отметку «минимум $50», и в сравнении стоит именно $50: сравнивать цену, которой не существует для вашего объёма, бессмысленно.

Отсюда же следует, почему цифра с главной страницы сервиса нам не годится. «От $1,75 за GB» на большинстве витрин — это цена терабайта. На объёме, который берёт живой человек, она другая, иногда в три раза.

Откуда берётся цена и что значит отметка рядом с ней

У каждой цены на сайте стоит уровень доверия. Это не оценка сервиса — это честное описание того, как цифра попала к нам.

ОтметкаЧто за ней стоитСейчас
проверено Проверено человеком. Цену открыл, прочитал и внёс администратор каталога — на той же странице, где её видит покупатель. 25
по API Из API сервиса. Сервис отдал цену программно, о самом себе. Цифра приходит отдельным полем, её не нужно вынимать из текста. 7
с сайта С официальной страницы тарифов. Снято автоматически со страницы самого сервиса; адрес страницы и дата сохранены. Цифра верная на момент сбора, но формулировку на витрине мог понять неверно робот. 37
по сторонним По сторонним источникам. Сам сервис цену не публикует. Цифра совпала минимум у 3 независимых источников, но официального подтверждения у неё нет. 0

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

Отметка «по сторонним» стоит особняком и в общую таблицу сравнения не попадает — для неё отдельный блок с объяснением. Такая цифра засчитывается только если совпала минимум у 3 независимых источников, а независимость считается по домену: три перепечатки одного пресс-релиза — это один источник, а не три.

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

Сколько цене лет

Дата стоит у каждой цены, и это не украшение. Сломанный разбор страницы выглядит снаружи ровно как «цена не менялась»: и то и другое — тишина. Поэтому у нас необновление считается отказом, а не покоем.

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

Как цены собираются

Четыре способа, и они не взаимозаменяемы.

Чего мы при сборе не делаем

Кроме этого у каждого правила есть коридор правдоподобия: цена вне него не публикуется, а помечается как подозрительная. Это ловит случай, когда правило зацепилось не за ту цифру на странице, — например поймало $0,95 за гигабайт мобильных там, где ниже $1 таких цен не бывает.

Ловушки, на которых мы уже ошибались

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

Слово «от»

«От $2 за гигабайт» у одного сервиса значит цену входа, у другого — цену на максимальном объёме. У нас из-за этого стояло $2,40 вместо настоящих $4,00. Теперь запись, снятая по слову «от», не публикуется, пока человек не выяснит цену входа: она остаётся в базе с пометкой «нужна проверка».

Срок

Три сервиса из наших публикуют цены не за месяц: два за неделю, один за сутки. У одного из них срок написан только на странице типа, а на сводной странице цен не написан вовсе — недельная цифра там выглядит как месячная и ровно вдвое дешевле. Ещё у одного в данных страницы лежат сразу три варианта — месяц, квартал и год, — и порядок между ними случайный: взять первый значило бы опубликовать $33,60 за адрес вместо $3,50. Срок мы теперь выбираем всегда явно.

Разметка для поисковика

Часть сервисов выкладывает готовые цены в служебной разметке страницы — той, которую читают поисковые роботы. Мы её не берём, и вот почему. У одного сервиса там восемнадцать ступеней, из которых на видимой странице есть одна: остальные покупатель не увидит нигде. У другого в разметке стоит валюта «доллары» и цена 0,50, а рядом в тексте — «от 49 ₽ в неделю». У третьего цены в разметке на 15% ниже витринных, потому что это его распродажа, и срок действия у них истёк три недели назад. Цена, которую нельзя показать пальцем на странице сервиса, у нас называется слухом.

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

Самая обидная. Поиск числа «5.50» в коде страницы даёт совпадения — и все они оказываются координатами внутри векторной картинки. У другого сервиса «2.50» нашлось в записи времени «…:32.500Z». Поверив счётчику совпадений, можно написать правило, читающее графику как цены. Поэтому цифра всегда проверяется по окружающему тексту, а не по факту присутствия в коде.

Почему мы не сравниваем типы между собой

У типов разные единицы оплаты: у резидентских — гигабайт трафика, у ISP и серверных — адрес в месяц, у мобильных портов — порт, у Scraping API — тысяча запросов. «Дешевле» между гигабайтом и адресом не существует, и любая таблица, где они стоят в одном столбце, вводит в заблуждение. Поэтому сравнение всегда идёт внутри одного типа.

По той же причине мы не выделяем «дешевле всех», если в типе меньше 3 предложений: при таком выборе это значило бы «единственный, который мы нашли».

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

Свои замеры

Цена — это половина ответа. Вторая половина в том, работает ли купленное: какая доля запросов доходит, какая задержка, сколько адресов в выдаче реально разные, попадает ли заявленное гео. Это мы измеряем сами, через оплаченные аккаунты.

Правила у замеров свои, и они строже, чем у цен:

Сейчас замеров 1 по 1 сервису, всего 20 запросов. Это самое начало: пока замеров столько, они говорят о конкретном прогоне, а не о сервисе, и мы не станем делать вид, что это иначе.

Партнёрские ссылки и деньги

Переходы на IPRoyal, Webshare — партнёрские: если вы там что-то купите, мы получим вознаграждение. Остальные ссылки обычные. Список назван поимённо, а не «некоторые ссылки на этой странице»: общая формулировка технически не врёт и не сообщает ничего.

Признаки сервисов: «не выяснено» — это не «нет»

Кроме цен мы ведём признаки: даёт ли сервис счёт для юрлица, есть ли SOCKS5, сгорает ли трафик, какие сайты закрыты. У каждого признака три состояния, а не два: да, нет и «не выяснено». Пустое место означает, что мы не проверяли, — и никогда не превращается в «нет». Разница видна на сайте.

Чего мы не делаем

Как проверить нашу цифру

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

Цены и условия у прокси-сервисов меняются в любой момент, и перед покупкой стоит сверяться у сервиса. Мы отвечаем за то, что цифра была такой на указанную дату и получена описанным здесь способом, — не за то, что она такая сейчас.