dtvnnhh8992 2016-07-14 19:38
浏览 44

使用令牌curl登录令牌

i'm trying to login to https://www.amzreviewtrader.com/ (thanks to https://www.amzreviewtrader.com/account.php page). I noticed that there is always a token whick will change every refresh. So with first curl i get it. After, i try to pass token, email and password with post method. but i can't login, i don't know why.

function grab_page($site){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($ch, CURLOPT_TIMEOUT, 40);
        curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
        curl_setopt($ch, CURLOPT_URL, $site);
        ob_start();
        return curl_exec ($ch);
        ob_end_clean();
        curl_close ($ch);
    }

    function login($url){

    $get_token = curl_init($url);
      curl_setopt($get_token, CURLOPT_COOKIEJAR, "cookie.txt");
      curl_setopt($get_token, CURLOPT_COOKIEFILE, "cookie.txt");
      curl_setopt($get_token, CURLOPT_TIMEOUT, 40000);
      curl_setopt($get_token, CURLOPT_RETURNTRANSFER, TRUE);
      curl_setopt($get_token, CURLOPT_URL, $url);
      curl_setopt($get_token, CURLOPT_FOLLOWLOCATION, TRUE);
      $response = curl_exec($get_token);
      $html = str_get_html($response);
      $token = $html->find('div.col-xs-12 form.form-horizontal input')[0]->value;
      echo $token;

        $login = curl_init($url);
        curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
        curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
        curl_setopt($login, CURLOPT_TIMEOUT, 40000);
        curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($login, CURLOPT_URL, $url);
        curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($login, CURLOPT_POST, TRUE);
        curl_setopt($login, CURLOPT_POSTFIELDS, "account_token=".$token."&email=xxxxxxxxx@xxxxx.xx&password=xxxxxxx");
        return curl_exec ();
        curl_close ();

        grab_page("https://www.amzreviewtrader.com/product-list.php");
    }
  • 写回答

1条回答 默认 最新

  • dptgpyl61857413 2016-07-14 19:48
    关注

    You can do something like this to get the token:

    function getStr($string,$start,$end){
    $str = explode($start,$string);
    $str = explode($end,$str[1]);
    return $str[0];
        }
    
        $token = getStr($url, 'var token = "','"');
    
    评论

报告相同问题?

悬赏问题

  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错