pagerank.dcu - модуль для определения pagerank на delphi Модуль для определения google pagerank на delphi. Сам модуль и описание дальше.

Привет! Мне однажды потребовалось определить тИЦ и pagerank в одной программе на delphi. Полез в интернет, посмотрел, как происходит определение. Вот для тИЦ проблем нет — нужно всего лишь подставить адрес нужного сайта в запрос и пропарсить xml результат. С pagerank ситуация другая: google не хочет, чтобы каждый мог определить pr в своей программе :) Помимо адреса проверяемого сайта нужно передать контрольную сумму, которую нужно рассчитать. Думаю, это сделано против массовых проверок.
Порывшись в интернете, нашел работающий php-скрипт без копирайта (и 10 неработающих :) ), перевёл на delphi пересчёт контрольной суммы, добавил немного winsock’а и, вуаля, получился работающий модуль расчёта pagerank для delphi.

В модуле всего две функции:

  1. function GetPR(host: string; var res: integer): integer;
    Всё очень просто, передаём нужный нам адрес сайта и числовую переменную. Функция GetPR возвращает значение google pagerank от 0 до 10. В переменную res записывается ответ сервера, 200 в случае успеха. Если в res 0, значит ошибка загрузки, код можно узнать с помощью WSAGetLastError. Сайт можно писать как с http://, так и без. Впрочем, на правильность этот параметр проверяй сам, так как в случае написания в этот параметр какой-нибудь другой строки, функция вернёт 0, а ответ от сервера будет 403.
    Пример использования:

    program prparsers;
    
    uses pagerank, winsock;
    
    {$apptype console}
    
    var
      res, pr: integer;
    
    begin
      pr:=GetPR('parsers.info', res);
      if res=200 then
        writeln('pr: ', pr)
      else if res=0 then
        writeln('socket error #', WSAGetLastError)
      else
        writeln('error, HTTP ', res);
      readln;
    end.
    
  2. function GetCheckSum(url: string): string;
    Просто возвращает контрольную сумму. Это если хочешь сам составить запрос и парсить ответ.

Модуль для определения pagerank написан на чистом winapi и занимает меньше 3,5Кб. Сокет синхронный, при желании можно использовать в потоке.

Большие программы ведь тоже используют готовые модули, будь то стандартные или полученные из других источников (не упоминаю свои, конечно же). Это значительно упрощает жизнь. Правда, не стоит забывать о лицензиях, и если всё нормально, то можно, например, предоставлять услуги по установке системы r-keeper, предварительно написав такую систему или что-то посложнее.

Ссылка:
Скачать модуль pagerank.dcu и прилагающиеся файлы
Буду рад, если тебе пригодится, а также благодарен, если упомянешь старину Димаса :)
(c) crystalbit, http://parsers.info

И да, буду рад обменяться постовыми с незаброшенными блогами по программированию :)