Archive

Archive for the ‘Интернет’ Category

Очень мало россиян использует интернет в мобильных устройствах

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

читать далее

Интернет – учитель нового поколения?

Но не только политика и экономика виновны в ухудшении уровня образованности наших сограждан. В последние годы немалую роль сыграло и появление сети Интернет.

читать далее

Categories: Интернет, Юмор Tags:

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

На минувшей неделе на страницах небезызвестного издания под названием Forbes была напечатан обновленный вариант перечня самых состоятельных людей России.

читать далее

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

На минувшей неделе на страницах небезызвестного издания под названием Forbes была напечатан обновленный вариант перечня самых состоятельных людей России.

читать далее

Автоматизация подписки на рассылку FeedBurner. Часть 3

March 9th, 2010 No comments

Заключительная часть трилогии о том, как взять feedburner’овскую капчу, заставить пользователя ввести её и подписать его на рассылку feedburner.

Часть 1, Часть 2

В этой статье разберем серверную часть программы – php-скрипт, задача которого обратиться к сервису feedburner, получить капчу, передать пользователю, принять расшифровку капчи от пользователя и передать feedburner. Я использовал ZendFramework, но в основном по мелочи.

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

Когда мы обращаемся к фидбернеру в первый раз отрабатывает следующий скрипт:

$client = new Zend_Http_Client(/* здесь должна идти строка с адресом рассылки, которую генерирует feedburner */);
$client->setParameterPost(array(
	        'loc'  => 'ru_RU',
	        'uri'   => /* данные вашей рассылки */,
	        'email' => /* данные вашей рассылки */,
	    ));
$resp = $client->request('POST');	// выполняем POST запрос
$headers = $resp->getHeaders();
 
// меняем относительные пути на полные
$response =  str_replace('captcha?','http://feedburner.google.com/fb/a/captcha?', $resp);
$response =  str_replace('="/fb','="http://feedburner.google.com/fb', $response);
 
// В ответ на наш запрос feedburner генерирует форму
// для заполнения с рядом скрытых (hidden) полей.
// Значение этих полей нам нужно достать и отправить
// обратно фидбернеру при следующем обращении
// Здесь я опушу большую часть однотипных действий
$pos1 = strpos($response, 'action="');
$action = substr($response, $pos1 + 8);
$pos11 = strpos($action, '"');
$action = substr($action, 0, $pos11);
 
$pos1 = strpos($response, 'input type="hidden" name="uri"');
$uri = substr($response, $pos1 + 38);
$pos11 = strpos($uri, '"');
$uri = substr($uri, 0, $pos11);

А далее нам остается только сформировать собственный кусок кода HTML, который AJAX вернет клиенту:

<form>
	<input type="hidden" id="fbaction" name="fbaction" value=""/>
	<input type="hidden" id="fburi" name="fburi" value=""/>
	<input type="hidden" id="fbemail" name="fbemail" value=""/>
	<input type="hidden" id="fbtoken" name="fbtoken" value=""/>
	<input type="hidden" id="fbcookie" name="fbcookie" value=""/>
 
</form>

$action, $uri, $email, $token – то, что мы достали из кода, сгенерированного фидбернером. $headers[‘Set-cookie’] – куки которые, установил фидбернер, их также нужно передать.

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

// клиент для HTTP-запросов
$client = new Zend_Http_Client($action);
// устанавливаем параметры, которые получили в прошлый
// раз от фидбернера
$client->setParameterPost(array(
		'loc'  => 'ru_RU',
	        'token'  => $_GET['token'],
	        'uri'   => $_GET['uri'],
	        'captcha'   => $_GET['captcha'],
	        'email' => $_GET['email']
	    ));
// не забываем добавить куки
$cookie = Zend_Http_Cookie::fromString($_GET['cookie']);
$client->setCookie($cookie);
// делаем POST запрос к фидбернеру
$response = $client->request('POST');

Вот и все. В $response у нас попадет ответ от фидбернера. Он скажет, что, либо регистрация прошла успешно, либо мы неправильно ввели капчу, либо плохой e-mail и т.п. Я ничего лучше не придумал, как проверять полученный текст на наличие каких-то ключевых слов. Это, в общем-то, тривиальная задача.

Как написать свой собственный IM бот менее, чем за 5 минут

February 4th, 2010 Comments off

Перевод статьи Амита Агарвала.

Это маленькое пособие покажет Вам, как разработать свой собственный функциональный IM бот, который работает с Google Talk, Yahoo! Messenger, Windows Live и всеми другими Программами мгновенного обмена сообщениями.

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

В этом примере, я создал бота, названного «labnol», который читает ваши сообщения и возвращает связанные поисковые фразы, размещенные в Google Suggest. Чтобы увидеть это вживую, добавьте labnol@bot.im в ваш GTalk список контактов и начинайте общаться.

Im_bot

Если вы хотите написать свой собственный IM бот, следуйте этим простым шагам:

Шаг 1. На сайте imified.com попросите приглашения. Вам также следует дать вашему боту подходящее имя, потому что вы можете иметь только один аккаунт, связанный с почтовым ящиком.

Шаг 2. Сообщение с секретным ключом должно прийти на ваш е-мейл в течение следующей минуты. Копируем его и переходим по ссылке.

Шаг 3. Самое время создать бота, который на самом деле является простым скриптом, который находится на вашем веб сервере. Это может быть PHP, Perl, Python или другой язык. Боьлше информации здесь.

Этот PHP скрипт я написал для нашего labnol IM бота. Он читает ваше сообщение, берет релевантную информацию из Google Suggest и отражает ее обратно в IM окно.

<?php
  // Get all the related keywords from Google Suggest
  $u = "http://google.com/complete/search?output=toolbar";
  $u = $u . "&q=" . $_REQUEST['msg'];
 
  // Using the curl library since dreamhost doesn't allow fopen
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $u);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
  $xml = simplexml_load_string(curl_exec($ch));
  curl_close($ch);
 
  // Parse the keywords and echo them out to the IM window
  $result = $xml->xpath('//@data');
  while (list($key, $value) = each($result)) {
    echo $value ."<br>";
  }
?>

Шаг 4. Когда ваш скрипт готов, поместите его на ваш веб сервер и скопируйте полное URI. Зайдите под вашим аккаунтом на imified , вставьте URI скрипта и добавьте его в ваш список друзей.

Это очень простой бот, но возможности неограниченны.
Например, вы можете написать бот, который посылает е-мейл всем вашим друзьям посредством простого IM сообщения. Или вы можете, например, написать бота, который производит переводы валют. Посмотрите список полезных Google Talk ботов.

Что важно знать о HTTP

January 28th, 2010 Comments off

Продолжение серии статей об Интернет-ботах.

Часть 1, Часть 2, Часть 3

HTTP (Hyper Text Transport Protocol) – это тот самый язык, на котором разговаривают браузеры с веб-серверами.

Самое важное о HTTP:

  • протокол предполагает наличие сервера и клиента (клиент посылает запрос «хочу страницу index.html», сервер отвечает «на тебе эту страницу, вот ее содержимое»)
  • это текстовый протокол (запросы и ответы имеют понятный человеку вид, их можно читать в обычном текстовом редакторе)
  • каждое сообщение состоит из стартовой строки, заголовков и тела (об этом подробнее дальше)

svideteli_osvidetelstvovanija

Перечисленные особенности делают HTTP очень простым и расширяемым. Например, когда возникла задача сохранять информацию на машине клиента, протокол переписывать не пришлось. Все что надо было сделать – добавть один новый заголовок запроса (Cookie) и один – ответа (Set-Cookie).

Ниже по тексту я буду предлагать вам делать разные вещи. Например, скачать Яндекс Telnet-клиентом. «Пощупав» HTTP своими руками, проще понять его принцип. Но можно и просто читать, специально для вас у меня припасены скриншоты :)

Минимальный HTTP запрос

Скачаем содержимое сайта www.ya.ru без браузера. Для этого подойдет Telnet-клиент, который наверняка есть в вашей ОС. Чтобы воспользоваться им в Windows, запустите интерпретатор командной строки (cmd.exe). Далее набирайте текст, как на картинке, и нажимайте Enter.

1

Появился пустой черный экран. Вводите:

GET / HTTP/1.1

Нажимайте Enter. Пусть вас не смущает, что ничего не отображается на экране. Продолжайте ввод:

Host: www.ya.ru

Нажимайте Enter дважды.

Это был HTTP-запрос. А вот и ответ:

2

Что же мы сделали:

  1. подключились к серверу ya.ru на 80-ый порт (стандартный для HTTP)
  2. отправили сообщение, состоящее из стартовой строки и одного заголовка
  3. получили ответ, состоящий из стартовой строки, семи заголовков и тела

В стартовой строке запроса необходимо указать HTTP метод, URI документа и версию HTTP. В заголовке Host – имя хоста. Это был минимальный запрос. Если что-нибудь убрать, сервер скажет «Bad request».

Ответ начинается со стартовой строки «HTTP/1.1 200 OK», что означает, что наш запрос обработан успешно. Нам присылают желанный документ, содержимое которого находится в теле HTTP ответа. Именно его мы увидим, если нажмем в браузере кнопку «Исходный код страницы». Из заголовков хотел бы обратить ваше внимание только на Content-Length – здесь указан размер тела сообщения в байтах.

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

Методы HTTP

Стартовая строка запроса начинается с названия метода, то есть имени основной операции, производимой над ресурсом.

Основные методы:

  • GET – используется при наборе адреса вручную или переходе по ссылке
  • POST – используется при отправке формы

Думаю, что распределение частоты запросов примерно такое:

  • 99.9% – GET
  • 0.1% – POST (читают Интернет намного чаще, чем пишут)
  • 0% – другие методы (имеют скорее историческую ценность)

Примечание: не стоит воспринимать эти цифры буквально.

При обращении к серверному скрипту обычно передаются параметры запроса. Например, URI http://svitter.ru/?p=621 означает, что я хочу прочитать статью #621. Методом GET можно передать парамтеры только через URI. С помощью POST их можно передавать как через URI, так и в теле сообщения.

В следующей статье я напишу, как анализировать HTTP трафик. Это необходимо для создания программы, эмулирующей браузер (ведь нам нужен Интернет-бот, помните? :) ).