Парсинг https страниц

Частенько вебмастеры сталкиваются с проблемой – необходимостью распарсить https страницу. Есть два варианта: использовать CURL либо сокеты. CURL использовать непрактично, ибо он отсутствует на большем количестве хостингов.
Остановимся на сокетах.

Вот пример функции, которая загружает страницы с безопасным соединением:

// Формируем запрос
$hostname="ssl://domain.ru";
$path="/index.php";
// Вызываем функцию, которая загружает страницу
$contents=get_content($hostname, $path);

print $contents; // Выводим содержимое страницы.

// Функция загружающая страницу при помощи сокетов
function get_content($hostname, $path)0
{
$line="";
// Устанавливаем соединение, имя которого передано в параметре $hostname
$fp=fsockopen($hostname, 443, $errno, $errstr, 30);
// Проверяем успешность установки соединения
if (!$fp) echo "$errstr ($errno)\n";
else
{
// Формируем HTTP-заголовки для передачи их серверу
$headers="GET $path HTTP/1.1\r\n";
$headers.="Host: $hostname\r\n";
// Подделываем пользовательский агент, маскируясь под пользователя WindowsXP
$headers.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1\r\n";
// Подделываем реферер
$headers.="Referer: http://".$hostname."\r\n";
$headers.="Connection: Close\r\n\r\n";
// Отправляем HTTP-запрос серверу
fwrite($fp, $headers);
// Получаем ответ
while (!feof($fp))
{
$line.=fgets($fp, 1024);
}
fclose($fp);
}
return $line;
}
?>

Похожие записи:

Комментировать