За последние 24 часа нас посетили 17592 программиста и 1718 роботов. Сейчас ищут 911 программистов ...

Сбор данных со страницы php

Тема в разделе "Регулярные выражения", создана пользователем kit, 17 мар 2009.

  1. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Установка CURL
    Для использования CURL необходимо также собрать PHP с опцией --with-curl[=DIR] (собрать??? он что упал и разбился? и что, теперь его собрать надо! или его весной посадили, он пророс, созрел и готов для сбора??? что значит собрать PHP??? с опцией??? блин ваще! с какой опцией? я его скачал, списал на диск Ц и поменял пхп.ини - все!!! как теперь его собрать с опцией КУРЛ? или его теперь разобрать надо, а потом снова собрать, но уже с --with-curl[=DIR] ), где DIR - имя директории...
    ППЦ! Для кого это написано? Для тех у кого этот курл давно стоит? Для тех, кто знает о чем речь? На хрена им это писать? Писать надо для нас, тупых и неграмотных!
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    для вас, тупых и неграмотных, под винду, все собрано в архив, который надо просто распаковать и раскомментировать соответствующие строчки в php.ini, а нормальные перцы под никсами собирают все ручками.
     
  3. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    мониторы они сами не паяют?
    Мир не без добрых людей с человеческим языком
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    дай им бог здоровья, а тебе мозгов.
     
  5. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    кстати на счет мозгов
    Содрал:
    PHP:
    1. <?
    2. $site="www.site.ru";
    3. $path="/";
    4. $my_sock = curl_init(); // инициализируем соединение
    5. curl_setopt($my_sock, CURLOPT_URL, $site.$path); // настраиваем необходимый урл
    6. curl_setopt($my_sock, CURLOPT_HEADER, 0); // отключаем заголовки
    7. curl_setopt($my_sock, CURLOPT_USERPWD, 'login:pass'); // задаем пароль и логин
    8. curl_exec($my_sock); // выполняем наш запрос
    9. curl_close($my_sock); // закрываем соединение
    10.  
    11. ?>
    Но все равно страницу открывает как для неопознанного юзера, чего ему CURLOPT_USERPWD не хватает?
    А?
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а при чем тут curl и file_get_contents?

    сие РАЗНЫЕ вещи.
    почитай ВНИМАТЕЛЬНЕЕ про curl и как им данные получать
     
  7. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Давай я попробую просто все объяснить, CURL это один из механизмов эмуляции браузера, то есть мы заставляем сервер думать что мы с него данные берем просматривая в браузере,а не из скрипта.Для прохода в авторизованую часть сайта через КУРЛ необходимо выполнить POST(в 90% случаев,хотя могут попасться и другие способы авторизации) запрос с логином и паролем.Получить от сервера куки,и каждый раз делая запрос на получение страницы не забывать давать ему куки.в КУРЛ есть возможность автоматически сохранять куки и использовать их, ищи в списке опций.

    PS: Чтоб понять какой POST запрос надо сделать, первый способ это открыть исходный код страницы с авторизацией, найти там форму отвечающую за вход,и изучить ее.Второй продвинутый, просто смотрим какой запрос делает браузер при авторизации через него, для этого есть как самостоятельные программы, так и плагины для браузера.
     
  8. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Alost
    в принципе все понятно, но можно пример какой-то?
    да понял уже
     
  9. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    PHP:
    1.  
    2. $ch=curl_init('http://vkontakte.ru/login.php');
    3. $login=""; // Здесь адресс почты
    4. $password="";// здесь пароль
    5. $data="email=".$login."&pass=".$password;
    6. curl_setopt($ch,CURLOPT_POST,true );
    7. curl_setopt($ch,CURLOPT_FOLLOWLOCATION ,true );
    8. curl_setopt($ch,CURLOPT_RETURNTRANSFER ,true );
    9. curl_setopt($ch,CURLOPT_POSTFIELDS  ,$data );
    10. curl_setopt($ch,CURLOPT_COOKIEFILE  ,'c:\cookie.txt' );
    11. curl_setopt($ch,CURLOPT_COOKIEJAR,'c:\cookie.txt' );
    12. $res=curl_exec($ch);
    13. //echo $res;
    14.  
    15.  
    16. $ch=curl_init('http://vkontakte.ru/id1');
    17. curl_setopt($ch,CURLOPT_FOLLOWLOCATION ,true );
    18. curl_setopt($ch,CURLOPT_RETURNTRANSFER ,true );
    19. curl_setopt($ch,CURLOPT_COOKIEFILE  ,'c:\cookie.txt' );
    20. $res=curl_exec($ch);
    21. echo $res;
    Авторизиумеся на сайте..и вытаскиваем страницу с id=1.
     
  10. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    как оперелить email там или может e_mail, а может mail? ну и с pass тоже самое. Если я открою страницу и с формы вытащу названия инпутов лоина и пароля, это оно и есть?
     
  11. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    HTML:
    1. <input type="text" name="[b]user[/b]" maxlength="16" class="text" style="width: 120px;">
    2. <input type="password" name="[b]password[/b]" maxlength="16" class="text" style="width: 120px;">
    Оно?
     
  12. mantell

    mantell Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    125
    Симпатии:
    1
  13. mantell

    mantell Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    125
    Симпатии:
    1
    А вообще лучше наверное все-таки пробовать, чем спрашивать каждую мелочь.
     
  14. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    в том -то и дело что попробовал и не работает, куки зписались в cookie.txt, а страница згрузилась как для неопознанного юзера, вот и думаю чего не так. Почему не получилось?
     
  15. mantell

    mantell Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    125
    Симпатии:
    1
    Запрос неправильный наверняка. Код покажи.
     
  16. mantell

    mantell Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    125
    Симпатии:
    1
    Кнопку submit, кстати, тоже надо в post включать, если у нее атрибут name есть. Да и вообще всю форму полностью, а не только логин и пароль.
     
  17. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    HTML:
    1.        <form action="/index.php?id=7" method="post">
    2.           <table border="0" cellpadding="0" cellspacing="0">
    3.             <tr>
    4.               <td style="font-weight: bold; color: #000000;">Логин:</td>
    5.               <td style="width: 5px;"></td>
    6.               <td><input type="text" name="user" maxlength="16" class="text" style="width: 120px;"></td>
    7.             </tr>
    8.             <tr style="height: 5px;">
    9.               <td></td>
    10.               <td style="width: 5px;"></td>
    11.               <td></td>
    12.             </tr>
    13.             <tr>
    14.               <td style="font-weight: bold; color: #000000;">Пароль:</td>
    15.               <td style="width: 5px;"></td>
    16.               <td><input type="password" name="password" maxlength="16" class="text" style="width: 120px;"></td>
    17.             </tr>
    18.           </table>
    19.           <table border="0" cellpadding="0" cellspacing="0" style="margin: 10px 0 0 0;">
    20.             <tr>
    21.               <td><input type="image" src="/assets/templates/regular/images/bn_enter.gif" style="width: 66px; height: 23px;"></td>
    22.               <td style="width: 10px;"></td>
    23.               <td><input type="checkbox" id="auth_checkbox" value="on" name="remember" class="checkbox"></td>
    24.               <td style="width: 5px;"></td>
    25.               <td><label for="auth_checkbox" style="color: #000000;">запомнить</label></td>
    26.             </tr>
    27.           </table>
    28.           <table border="0" cellpadding="0" cellspacing="0" style="margin: 10px 0 0 0;">
    29.             <tr>
    30.               <td><a href="/index.php?id=3"><img src="/assets/templates/regular/images/bn_reg.gif" alt="" style="border: none; width: 110px; height: 22px;"></a></td>
    31.               <td style="width: 10px;"></td>
    32.               <td><a href="/index.php?id=5" class="inverted" style="color: #000000;">напомнить пароль</a></td>
    33.             </tr>
    34.           </table>
    35.           </form>
    извиняюсь что лишнее не убрал
     
  18. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Ура получилось!!!!!!!!!!!!!!!!!
    HTML:
    1. <form action="/index.php?id=7" method="post">
    Не поставил index.php?id=7
     
  19. mantell

    mantell Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    125
    Симпатии:
    1
    Поставь себе приблуду какую-нить, чтобы просматривать http-заголовки. Очень помогает.
     
  20. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Я вчера поставил IEWatch, прикольная штука! Вчера так хорошо шерстил куки и заголовки, а сёня че-то не хочет, надо покапаться, но сначала поиграюсь с параметрами curl_setopt курла, надо понять че там че делает.

    mantell
    Alost
    и даже тебе 440Hz (хотя ты и хам (но ооч грамотный хам! :D ))
    Спасибо!!! Ура!!!