Быстрый поиск
Введите фрагмент названия статьи для поиска
Новый алгоритм получения Google PageRank
11.10.2011 | Категория: Web-мастеру и не только | Автор: ManHunter
Буквально на днях Google поменял алгоритм, по которому генерировалась ссылка для получения показателей Google PageRank. В результате этого отвалились многие сервисы, вспомогательные программы, сторонние тулбары, счетчики и еще бессчетное количество сеошного барахла. Мне было бы глубоко фиолетово на их проблемы, но у меня на сайте тоже используется система автоматического съема значений Google PR. Поэтому пришлось быстренько адаптироваться к новым условиям. Я установил себе гугловский тулбар, быстренько выпотрошил его и получил алгоритм генерации ссылки для получения Google PageRank. Вот как он выглядит на JavaScript:Code (JavaScript) : Убрать нумерацию
- <script type="text/javascript">
- // Программисты Google явно с юмором :)
- var HASH_SEED = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. "+
- "Yes, I'm talking to you, scammer.";
- // Расчет хэша строки запроса
- awesomeHash = function(a) {
- var b = 16909125;
- for (c = 0; c < a.length; c++) {
- b ^= HASH_SEED.charCodeAt(c % HASH_SEED.length) ^ a.charCodeAt(c);
- b = b >>> 23 | b << 9;
- }
- return '8'+hexEncodeU32(b);
- };
- // Перевод числа в HEX-значение
- hexEncodeU32 = function(a) {
- var b = toHex8(a >>> 24);
- b += toHex8(a >>> 16 & 255);
- b += toHex8(a >>> 8 & 255);
- return b + toHex8(a & 255)
- };
- toHex8 = function(a) {
- return (a < 16 ? "0": "") + a.toString(16)
- };
- // Функция получения ссылки для запроса Google PR
- getPageRankLink = function(a) {
- return 'http://toolbarqueries.google.ru/tbr?features=Rank'+
- '&client=navclient-auto-ff&ch='+awesomeHash(a)+'&q=info:'+
- encodeURIComponent(a);
- }
- </script>
Code (JavaScript) : Убрать нумерацию
- <script type="text/javascript">
- // Пример использования
- st='http://www.manhunter.ru/'
- alert(getPageRankLink(st));
- </script>
Читать статью целиком »
Просмотров: 7235 | Комментариев: 12
Domain Detective 1.4
25.08.2011 | Категория: Мои программы | Автор: ManHunter
Скриншот программы Domain Detective
Программа для определения принадлежности доменов верхнего уровня (top-level domains) по странам. В базе программы содержится информация о 285 доменных зонах: домены верхнего уровня стран, домены общего назначения и домены ограниченного использования. В программе Domain Detective вся информация тщательно выверена и в точности соответствует официальным данным. Для получения информации достаточно ввести название домена или выбрать доменную зону из списка, и программа сразу покажет принадлежность домена на русском и английском языках.
Читать статью целиком »
Просмотров: 6879 | Комментариев: 13
Генератор текста на основе цепей Маркова
18.12.2010 | Категория: Web-мастеру и не только | Автор: ManHunter
В web-строительстве и SEO цепи Маркова используются для генерации псевдоосмысленных текстов на основании исходных текстов. Это используется для штамповки дорвеев с заданными ключевыми словами, для набора контентной текстовой массы и тому подобным "черным" трюкам. К счастью, поисковые системы научились эффективно определять контент, созданный на основе цепей Маркова и отправляет таких умников в бан. Учить вас подобным технологиям я не собираюсь, для этого есть специальные говносайты, меня интересует только программная реализация алгоритма.
Цепью Маркова называется последовательность испытаний, в каждом из которых появляется только одно из k несовместных событий Ai из полной группы. При этом условная вероятность pij(s) того, что в s-ом испытании наступит событие Aj при условии, что в (s - 1) - ом испытании наступило событие Ai, не зависит от результатов предшествующих испытаний.
Желающие повзрывать свой головной мозг могут почитать про математическую модель. На человеческом языке все эти формулы сводятся к следующему. В исходном тексте определяются слова и сохраняется последовательность, какие слова идут за какими. Затем на основании этих данных создается новый текст, в котором сами слова выбраны случайно, но сохранены связи между ними. Для примера возьмем детский стишок:
Из-за леса, из-за гор
едет дедушка Егор:
сам на лошадке,
жена на коровке,
дети на телятках,
внуки на козлятках.
Разберем текст на звенья и связки
из-за [леса, гор]
леса [из-за]
гор [едет]
едет [дедушка]
дедушка [Егор]
Егор [сам]
сам [на]
на [лошадке, коровке, телятках, козлятках]
лошадке [жена]
жена [на]
коровке [дети]
дети [на]
телятках [внуки]
внуки [на]
Звенья в этом списке представляют собой уникальные слова из текста, а в квадратных скобках перечислены связи - список слов, которые могут располагаться после этого слова.
Читать статью целиком »
Просмотров: 39971 | Комментариев: 25
Определение географического положения по IP-адресу
23.09.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
Определение страны и города посетителя сайта по его IP-адресу применяется во многих случаях. Например, автоматическая подстройка языка отображения сайта, более точный таргетинг рекламных или информационных блоков сайта, разграничение доступа к разделам сайта для разных источников трафика, а также для многих других целей. Наиболее полные базы географического положения IP-адресов в настоящее время предоставляет компания MaxMind в своей базе GeoLite City. Бесплатный вариант базы содержит данные с точностью до города, его можно скачать с сайта в бинарном формате (в распакованном виде около 30 мегабайт) и в формате CSV (в распакованном виде около 130 мегабайт). На сайте также можно оформить подписку на коммерческие варианты базы, содержащие данные с точностью до улиц и обновляющиеся еженедельно, но это только если вашему проекту действительно требуется такая точность. Обновления бесплатной базы выходят регулярно, обычно в первых числах каждого месяца. Пример работы скрипта с коммерческой географической базой можно посмотреть на сайте MaxMind. Там же на сайте можно скачать бесплатные базы стран мира, почтовые индексы некоторых стран и много других полезных данных. К сожалению, самые вкусности предоставляются только за деньги.Доступ к базе осуществляется через API, для некоторых популярных языков программирования они расписаны на сайте. Например, для PHP, кроме собственно самой базы, потребуются еще файлы geoipcity.inc, geoip.inc и geoipregionvars.php. Вызов функции определения положения очень простой:
Code (PHP) : Убрать нумерацию
- <?
- // Подключить класс для работы с базой
- include "geoipcity.inc";
- // IP-адрес для проверки
- $visitor_ip="70.240.110.17";
- // Открыть файл базы
- $gi=GeoIP_open("GeoLiteCity.dat", GEOIP_STANDARD);
- // Получить данные из базы
- $record=GeoIP_record_by_addr($gi,$visitor_ip);
- // Вывести данные на экран
- print_r($record);
- // Закрыть соединение с базой
- GeoIP_close($gi);
- ?>
geoiprecord Object (
[country_code] => US
[country_code3] => USA
[country_name] => United States
[region] => TX
[city] => Houston
[postal_code] =>
[latitude] => 29.7755
[longitude] => -95.4152
[area_code] => 713
[dma_code] => 618
[metro_code] => 618
)
Отдельные параметры можно получить из соответствующих полей объекта. Для более оперативного доступа к данным можно хранить базу в памяти целиком (смотрите примеры в описаниях API на офсайте), но такое расточительное использование ресурсов допустимо только на выделенных серверах.
Читать статью целиком »
Просмотров: 17020 | Комментариев: 16
Грабберы контента с других сайтов
16.06.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
Грабберы контента - это специальные скрипты или программы, которые получают некоторую информацию напрямую из текста html-страниц других сайтов, чаще всего без их ведома или разрешения. Название произошло от транскрипции английского глагола "to grab" - "захватывать", "использовать", хотя и русский вариант корня "грабить" тоже иногда подходит. Вообще, тырить чужой контент и использовать его на своих сайтах нехорошо. Но в некоторых случаях считаю это допустимым, например, когда для мобильных устройств требуется получить облегченные версии страниц сайтов, которые не имеют такой штатной функции. Или же надо удалить со страницы всякую рекламу, а то некоторые ублюдочные сайты умудряются заталкивать баннеры даже в RSS-ленты. Или, например, если требуется получать информацию с сайтов, у которых нет собственных API для выгрузки контента.Самый простой способ получить текст нужной html-страницы сайта - при помощи функции PHP file_get_contents. Текст загруженной страницы разбирается регулярными выражениями. Вот пример граббера для Цитатника Рунета. После извлечения цитат с главной страницы можно вывести их все списком, как сделано в этом примере, или показать случайным образом одну из них.
Code (PHP) : Убрать нумерацию
- <?
- //-----------------------------------------------------------
- // Граббер цитат с Цитатника Рунета bash.org.ru
- // Загружает и парсит главную страницу, цитаты помещает в массив
- //-----------------------------------------------------------
- // Получить html-страницу
- $grab=@file_get_contents("http://bash.org.ru");
- if ($grab) {
- // Заменить теги переноса строки на простые переносы строки
- $grab=str_replace("<br>","\n",$grab);
- // Получить регулярным выражением тексты цитат
- preg_match_all("/<div class=\"vote\">([^>]*>){12}([^<]*)/",$grab,$matches);
- // В массиве содержатся все найденные строки
- for ($i=0; $i<count($matches[2]); $i++) {
- echo nl2br($matches[2][$i]);
- echo '<hr>';
- }
- }
- else {
- echo "Connection Error";
- }
- ?>
Читать статью целиком »
Просмотров: 50447 | Комментариев: 17