1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

GetPage( ) не берёт страницу

Тема в разделе "Web Coding", создана пользователем red_heads, 19 янв 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. red_heads

    red_heads

    Регистр.:
    30 янв 2007
    Сообщения:
    157
    Симпатии:
    26
    GetPage( ) не берёт страницы сайта nix.ru
    допустим nix.ru/2id.php?i=71858
    Как еще можно содержимое страницы записать в переменную?
    или сохранять её куда нибудь (temp) и от туда считывать
     
  2. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    Используй curl:
    PHP:
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,$temp_url);   // В $temp_url урл сайта, который обрабатывается в настоящий момент
    curl_setopt($ch,CURLOPT_TIMEOUT,$http_timeout);   // Таймаут
    curl_setopt($ch,CURLOPT_USERAGENT,$useragent);   // Браузер
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);   // Возвращаем результат в переменную $temp_file
    $temp_file=curl_exec($ch);  // $temp_file - переменная просматриваемого сайта
    $http_code=curl_getinfo($ch,CURLINFO_HTTP_CODE);   // Код ответа сайта
    curl_close($ch);
     
  3. red_heads

    red_heads

    Регистр.:
    30 янв 2007
    Сообщения:
    157
    Симпатии:
    26
    не сработало
    не считывает страницу
    :confused:

    может можно ещё как то ?
     
  4. terkin

    terkin

    Регистр.:
    9 дек 2006
    Сообщения:
    513
    Симпатии:
    162
  5. mentanos

    mentanos Постоялец

    Регистр.:
    27 дек 2007
    Сообщения:
    128
    Симпатии:
    35
    прямой запрос
    Код:
    GET /2id.php?i=71858 HTTP/1.1
    Host: nix.ru
    
    
    дает редирект:
    Код:
    HTTP/1.1 302 Found
    Date: Sat, 19 Jan 2008 12:20:45 GMT
    Server: Apache/1.3.37 (Unix) mod_ssl/2.8.28 OpenSSL/0.9.8b rus/PL30.22
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Set-Cookie: PHPSESSID=6c6c3d431891b69dac9a7e90ec5711bb; path=/
    Pragma: no-cache
    Status: 301 Moved Permanently
    Location: http://nix.ru/autocatalog/acer/acer_notebook/Acer_Ferrari_1100-704G25Mn_LX.FR90U.045_T64_X2_TL66_4096_DVD-RW_WiFi_BT_VistaUL_12.1WXGA_1.99_71858.html
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=windows-1251
    Vary: accept-charset, user-agent
    
    0
    
    
    видимо, способы, которые ты использовал, не обрабатывали редирект. у меня file_get_contents('http://nix.ru/2id.php?i=71858'); страницу схватил
     
  6. red_heads

    red_heads

    Регистр.:
    30 янв 2007
    Сообщения:
    157
    Симпатии:
    26
    Вопрос такой, а ту ли он страницу схватил ?
    у меня почему то хватает совсем не ту страницу с описанием, а новости видимо с главной страницы

    Что теперь делать?

    Может дело в редиректе, как его обработать чтоб увидел нужную страницу
    Хотя и

    nix.ru/autocatalog/acer/acer_notebook/Acer_Ferrari_1100-704G25Mn_LX.FR90U.045_T64_X2_TL66_4096_DVD-RW_WiFi_BT_VistaUL_12.1WXGA_1.99_71858.html

    /2id.php?i=71858


    одинаково выводят главную страницу сайта:nezn:
     
  7. pk2002

    pk2002

    Регистр.:
    14 ноя 2006
    Сообщения:
    382
    Симпатии:
    350
    file_get_contents нормально редирект обрабатывает
     
  8. mentanos

    mentanos Постоялец

    Регистр.:
    27 дек 2007
    Сообщения:
    128
    Симпатии:
    35
    ничего подобного. схваченная страница - о товаре Acer Ferrari 1100-704G25Mn <LX.FR90U.045> T64 X2 TL66/4096/250/DVD-RW/GbLAN/WiFi/BT/VistaUL/12.1"WXGA/1.99 кг
     
  9. red_heads

    red_heads

    Регистр.:
    30 янв 2007
    Сообщения:
    157
    Симпатии:
    26
    PHP:
    <?php
    $temp_file
    =file_get_contents('http://nix.ru/autocatalog/acer/acer_notebook/Acer_Ferrari_1100-704G25Mn_LX.FR90U.045_T64_X2_TL66_4096_DVD-RW_WiFi_BT_VistaUL_12.1WXGA_1.99_71858.html');

    echo 
    "$temp_file"
     
    ?>
    мож чего ещё надо к коду добавить

    странно на разных хостингах , выводит одно и тоже,
    не пойму что за бред
    выводит совершенно не эту страницу с описанием товара :eek:


    остальные сайты нормально отображает
     
  10. mentanos

    mentanos Постоялец

    Регистр.:
    27 дек 2007
    Сообщения:
    128
    Симпатии:
    35
    хм. я у себя делал 1.php
    <?=file_get_contents('http://nix.ru/2id.php?i=71858')?>

    и запускал php 1.php>1

    в 1 была страница конкретная. а открыл этот же линк из консоли в Lynx, выбросило на стартовую сейчас посмотрю что там за прикол и обновлю этот пост

    UPDATE
    хм. презабавно. от себя делаю wget "http://nix.ru/2id.php?i=71858", получаю страницу с описанием товара. делаю это же из консоли двух разных серверов - переброс на block.html.

    отсюда вывод: либо nix.ru использует какие-то базы данных ip серверов, либо при каждом запросе делает обратный коннект на 80 (например) порт, чтобы выявить обращаются ли к нему с рабочей станции или с сервера. если с сервера - переброс на block.html.

    эти предположения подтверждаются тем, что когда захожу из браузера через элитный прокси также идет переброс на block.html (referer передается). возможно сделано для того, чтобы через прокси не заходили. кто знает...
     
Статус темы:
Закрыта.