The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Скачать сложную страничку на PHP"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Скачать сложную страничку на PHP"  
Сообщение от interist32 email(??) on 12-Апр-08, 20:14 
Привет!

Столкнулся с такой проблемой. Пытался разобрать страничку http://livescore.com/default.dll?page=italy

Проблема в том, что "скачать" саму страничку не получается. file_get_contents не хочет брать, пишет, что на моем сервере не найден default.dll. Оно и понятно... fopen wrappers включены.

Была идея подключиться через интерфейс сокетов, тоже не получилось, их гребаный IIS постоянно возвращает, что у меня не правильные аргументы. Я так подумал, что они отслеживают Cookie в заголовке, однако, отключив в Firefox их, я все равно смог зайти на сайт.

Пробывал перехватывать заголовок, который Firefox отправляет туда, вставлял его в свой сокет. 1 раз как-то чудом скрипт сработал, но правда подвис и вернул только половину содержимого в другой кодировке. Стал обновлять - просто не выполняется и все.

Исходник на сокетах:

<?php
$host32='www.livescore.com';

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = getservbyname ('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname ($host32);

/* Create a TCP/IP socket. */
$socket = socket_create (AF_INET, SOCK_STREAM, 0);
if ($socket < 0) {
    echo "socket_create() failed: reason: " . socket_strerror ($socket) . "\n";
} else {
    echo "OK.\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect ($socket, $address, $service_port);
if ($result < 0) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
} else {
    echo "OK.\n";
}

$out = '';
$in = "GET /default.dll?page=italy&sid=0804aX HTTP/1.1\r\n";
$in .= "Host: livescore.com\r\n";
$in .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8\r\n";
$in .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$in .= "Accept-Language: ru\r\n";
$in .= "Accept-Encoding: gzip,deflate\r\n";
$in .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
$in .= "Keep-Alive: 300\r\n";
$in .= "Connection: keep-alive\r\n";
$in .= "Referer: http://livescore.com/default.dll?page=italy\r\n&qu...
$in .= "If-Modified-Since: Sun, 13 Apr 2008 17:55:44 GMT\r\n";
$in .= "Cache-Control: max-age=0\r\n\r\n";

echo "Sending HTTP request...
";
printf($in);
socket_write ($socket, $in, strlen ($in));
echo "OK.\n";
echo "Reading response:\n\n";
while ($out = socket_read ($socket, 2048)) {
    echo iconv("UTF-8","WINDOWS-1251",$out);
}


echo "Closing socket...";
socket_close ($socket);
echo "OK.\n\n";
?>

Но хотелось бы услышать вариант о том, как бы скачать все-таки страничку и положить её в мою папку на сервере. Заранее спасибо.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Скачать сложную страничку на PHP"  
Сообщение от angra (ok) on 13-Апр-08, 00:36 
Самый простой способ - сохраните при помощи браузера. Неужели вы думаете, что вас тут будут бесплатно учить работать с http протоколом еще и на пыхе?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Скачать сложную страничку на PHP"  
Сообщение от Romikk on 21-Апр-08, 11:49 
Попробуй CURL, достаточно функциональное расширения по работе с такимм задачами
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру