За последние 24 часа нас посетили 22454 программиста и 1028 роботов. Сейчас ищут 688 программистов ...

Помогите открыть URL

Тема в разделе "Сделайте за меня", создана пользователем m.i.s.h.a-p.e.t.r.o.v, 12 окт 2017.

  1. m.i.s.h.a-p.e.t.r.o.v

    m.i.s.h.a-p.e.t.r.o.v Новичок

    С нами с:
    12 окт 2017
    Сообщения:
    4
    Симпатии:
    0
    Имеется внешний сайт https://oxlive.dorseywright.com Доступ к сайту предоставляется по логину и паролю
    Необходимо открыть определенную страницу этого сайта для дальнейшей обработки скриптом PHP.
    Делаю так
    PHP:
    1. $f=fopen("https://oxlive.dorseywright.com/chart/index/trend/EURUSD", 'r');
    2. while(!feof($f))
    3. {
    4.     echo fgets($f).'<br>';
    5. }
    6. fclose($f);
    В результате естественно открывается страница авторизации.
    Как можно решить проблему, можно ли скрипту авторизоваться на сайте прежде чем открывать нужную страницу?

    Вот данные для входа в демо
    username: gorkuhetri@deyom.com
    password: tvqmzd8azg
    csrf: 073a20430ffd4827d111112422266e22222933ae

    csrf нашел в коде формы, похоже он генерируется рандомно. Можно попробовать подставить произвольное значение.

    Как это будет выглядеть в коде?
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    запрашивай доступ по api
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    api нет
    есть копирайт страничка, где написано, что нельзя использовать без письменного разрешения.

    разрешение есть?
     
  4. m.i.s.h.a-p.e.t.r.o.v

    m.i.s.h.a-p.e.t.r.o.v Новичок

    С нами с:
    12 окт 2017
    Сообщения:
    4
    Симпатии:
    0
    Нет. Без него код не написать? Инфа с сайта нигде использоваться не будет, нужно лишь выдрать оттуда кое что.
     
  5. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    это кража контента.
    тебе тут не помогут в этом вопросе..
     
  6. m.i.s.h.a-p.e.t.r.o.v

    m.i.s.h.a-p.e.t.r.o.v Новичок

    С нами с:
    12 окт 2017
    Сообщения:
    4
    Симпатии:
    0
    Ok Тогда как будет выглядеть авторизация на абстрактном сайте? Если не писать код именно для этого, а просто стоит задача написать такой код. Или такой код сам по себе инструмент кражи?
     
  7. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    да.
    Нормальный, человеческий доступ к другим сайтам - API.
     
  8. machetero

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

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Авторизация на сайте делается либо ручками, либо через апи(по протоколу OAuth).
     
  9. m.i.s.h.a-p.e.t.r.o.v

    m.i.s.h.a-p.e.t.r.o.v Новичок

    С нами с:
    12 окт 2017
    Сообщения:
    4
    Симпатии:
    0
    Нашел вот что, если это то?

    PHP:
    1. $curl = curl_init();
    2. curl_setopt($curl, CURLOPT_FAILONERROR, 1);
    3. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // allow redirects
    4. curl_setopt($curl, CURLOPT_TIMEOUT, 10); // times out after 4s
    5. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // return into a variable
    6. curl_setopt($curl, CURLOPT_URL, "https://oxlive.dorseywright.com/ajax/auth/login");
    7. curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 GTB6");
    8. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    9. $username = "gorkuhetri@deyom.com";
    10. $csrf = "073a20430ffd4827d111112422266e22222933ae";
    11. $password = "tvqmzd8azg";
    12. $loc = "";
    13. $myForm = "username=$username";
    14. $myForm .= "csrf=$csrf";
    15. $myForm .= "password=$password";
    16. $myForm .= "loc=$loc";
    17. curl_setopt($curl, CURLOPT_POST, TRUE); // HTTP-Post Operation
    18. curl_setopt($curl, CURLOPT_POSTFIELDS, $myForm); // Set your form data
    19. $data = curl_exec($curl);
    20. print_r($data);
    Такого кода заточенного под авторизацию на сторонних сайтах в интернете полно, в виде статей и тем на форумах. Другое дело что в данном случае это не срабатывает.