Как отпарсить большую страницу

Статус
В этой теме нельзя размещать новые ответы.

alexander-x

Постоялец
Регистрация
20 Май 2007
Сообщения
129
Реакции
26
есть сайт, хочу сделать его статическую копию для ускорения работы

пробую просто копировать:

PHP:
$submit_url = "http://site/index.php";	
$pricefile = "../price.html";
$content = file_get_contents($submit_url);
$fp = fopen($pricefile, 'w');
fwrite($fp, $content);
fclose($fp);


работает для всех страниц, кроме нужной. она 3-х мегабайтная
со Снуппи та же хрень :(
 
PHP:
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

А так?
 
PHP:
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>
А так?


вывело на экран
Success (0) - это первое сообщение.
подозреваю что в ПХП настройки можно подкрутить, но вот где.
 
Дай url страницы.
 
подозреваю что в ПХП настройки можно подкрутить, но вот где.

нет, дело именно в коде(а конкретней в $fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);)..скинь свой код, что ты использовал..
 
Возможно стоит увеличить работу скрипта с 30 сек ну гдет до 1 мин,тк 3 мега многовато если канал не широкий...а так и file_get_contents() должен все отл сливать...
 
Время и память. Все должно работать.
Делай для начала set_time_limit(0) в начале скрипта - оно у тебя скорее всего просто не успевает скачать страничку. Если скачивает, но валится на ошибке memory limit - поковыряй php.ini, вот тут подробно написано:

А так все должно работать, и с обычным file_get_contents()
 
Время и память. Все должно работать.
Делай для начала set_time_limit(0) в начале скрипта - оно у тебя скорее всего просто не успевает скачать страничку. Если скачивает, но валится на ошибке memory limit - поковыряй php.ini, вот тут подробно написано: *** скрытое содержание ***
А так все должно работать, и с обычным file_get_contents()
Согласен, попробуй добавить в начало скрипта:
PHP:
set_time_limit ( 0 );
ini_set ( 'memory_limit', '8M' );
 
никак не получается.

The server encountered an unexpected condition which prevented it from fulfilling the request.
The script had an error or it did not produce any output. If there was an error, you should be able to see it in the error log.

если вычитывать

или success(0) на последний пример
переменные выставил


чтоб было понятней вообще что я делаю.
задача - учкорить Шоп-Скрипт. вызов price делаю статическим т.е. парсинг допустим по ночам и сохранение в файл.

Для просмотра ссылки Войди или Зарегистрируйся магазин/index.php?show_price=yes

так можете на своих магазинах проверить, у кого есть.
 
попробуй курл
PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://твой магазин/index.php?show_price=yes');
curl_setopt($ch, CURLOPT_HEADER, 0);
$content = curl_exec($ch);
curl_close($ch);
echo($content);
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху