Эмуляция браузера

Тема в разделе "PHP", создана пользователем dig555, 29 сен 2009.

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

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    Есть маленький белорусский файлообменник - http://freespace.by/
    Задача - иметь возможность удалённой загрузки. Т.е. я скармливаю скрипту прямую ссылку на удалённый файл, а скрипт заливает файл на ФО и отдаёт мне ссылки на скачку и удаление.
    Я знаю, что это возможно, но плохо представляю как это должно выглядеть. Буду благодарен за литературу и помощь (статью на хабре про народ диск читал).
    Я думаю, что это должно выглядеть где-то так:
    1). Тянем курлом страницу.
    2). Парсим значения APC_UPLOAD_PROGRESS и UPLOAD_IDENTIFIER (они одинаковые).
    3). Попробуем сделать POST запрос к http://freespace.by/file/upload передавая в CURLOPT_POSTFIELDS
    что-то вроде:
    HTML:
    http://freespace.by/file/upload?APC_UPLOAD_PROGRESS=498b0944765c8&UPLOAD_IDENTIFIER=498b0944765c8&file=http://domen.ru/file.rar&Загрузить
    Только что-то ни хрена у меня не получается :confused: Помогите, пожалуйста умной мыслью и/или кодом.


    З.Ы.Про Xedant и аналоги, rapidgetpro и аналоги, snoopy class и аналоги знаю. Не подходит.
     
  2. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Ну может ты покажешь, что ты пытался сделать, выложишь свой код, а мы уж подскажем где ты ошибся.
     
  3. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    Ну вот суть моих потуг:

    PHP:
    <?
    $cookie_file 'cookie.txt';
    $user_agent 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6';
    $ch curl_init('http://freespace.by');
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_USERAGENT$user_agent);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_COOKIEJAR$cookie_file);
    curl_setopt($chCURLOPT_SSL_VERIFYPEER,  0);
    curl_setopt($chCURLOPT_POST1);
    $result curl_exec($ch);
    $info curl_getinfo($ch);
    preg_match('|name="APC_UPLOAD_PROGRESS" value="(.*)"|Uis',$result,$code);  
    $addurl 'http://freespace.by/file/upload';
    $file="http://ya.ru/logo.png";
    $post="APC_UPLOAD_PROGRESS=".$code[1]."&UPLOAD_IDENTIFIER=".$code[1]."&file=".$file."&urldecode('Загрузить')";
    curl_setopt($chCURLOPT_URL$addurl);
    curl_setopt($chCURLOPT_REFERER'http://freespace.by/');
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    $result curl_exec($ch);
    ?>
     
  4. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    а $url откуда берется?
     
  5. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    Поправил. При втором обращении, используем $addurl, который прописан. (Там должны "ждать" POST запрос). Пишет, что файл успешно загружен, но ничего не загружается.
     
  6. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    к сожалению, хотел помочь, но не смогу, файлообменник не пускает меня по ип
     
  7. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    Собственно, если с небелорусских IP ФО не пускает, тогда и вся тема неактуальна. Смысл виделся в заливке с своего быстрого сервера файлов на этот ФО с последующей выкачкой на большей скорости, нежели напрямую с своего сервера. :(

    Клоузед.
     
Статус темы:
Закрыта.