PHP: <?php $f = fsockopen('search.yaca.yandex.ru', 80); if (!$f) { exit; } fwrite($f, "GET /yca/cy/ch/yandex.ru HTTP/1.1\r\n"); fwrite($f, "Host: search.yaca.yandex.ru\r\n"); fwrite($f, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3\r\n"); fwrite($f, "Accept-Encoding: gzip,deflate\r\n"); fwrite($f, "Connection: close\r\n"); fwrite($f, "\r\n"); $response = ""; $data = ""; while (!feof($f)) { $response .= fgets($f); } list($headers, $body) = explode("\r\n\r\n", $response, 2); if (preg_match('/^Transfer-Encoding:\s*chunked/mi', $headers)) { while (preg_match('/^([0-9a-f]+)/i', $body, $match)) { $offset = strlen($match[1]) + 2; $length = hexdec($match[1]); $data .= substr($body, $offset, $length); $body = substr($body, $offset + $length + 2); } } else { $data = $body; } if (preg_match('/^Content-Encoding:\s*gzip/mi', $headers)) { $data = gzinflate(substr($data, 10)); } print $data; =) Вобщем, там chunked ответ. Приходит по кусочкам, поэтому его надо клеить.