Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以编程方式登录阿里巴巴网站_Php_Curl - Fatal编程技术网

Php 以编程方式登录阿里巴巴网站

Php 以编程方式登录阿里巴巴网站,php,curl,Php,Curl,我试图弄清楚如何使用PHP和CURL登录到该网站。我正在使用下面的代码,但它似乎不起作用。您建议我如何自动登录此网站 我当前的代码: <? $cookie = "cookie.txt"; // set global curl options $curloptions = array( CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070

我试图弄清楚如何使用PHP和CURL登录到该网站。我正在使用下面的代码,但它似乎不起作用。您建议我如何自动登录此网站

我当前的代码:

<?
$cookie = "cookie.txt";
// set global curl options
$curloptions = array(
        CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6',
        CURLOPT_TIMEOUT => 60,
        CURLOPT_COOKIEJAR => $cookie,
        CURLOPT_COOKIEFILE => $cookie,
        CURLOPT_REFERER => 'http://www.alibaba.com'
);

// set userinfo
$username = 'xxxxxxxxxxx';
$password = 'xxxxxxxxxxx';

// clear cookie.txt (fresh session)
$handle = fopen($cookie, 'w');
fclose($handle);

// make a dummy request to generate a session
curl_http_request('https://login.alibaba.com', $curloptions);

// login
curl_http_request('https://login.alibaba.com', 
    array(
        CURLOPT_POSTFIELDS => 'xloginPassport=' . $username . '&xloginPassword=' . $password . '&noCsrfToken=&xloginCheckToken=&rememberme=&runatm=',
        CURLOPT_POST => TRUE
    ), $curloptions
);

//example request
echo curl_http_request('https://login.alibaba.com', 
    array(
        CURLOPT_FOLLOWLOCATION => TRUE,
        CURLOPT_RETURNTRANSFER => TRUE
    ), $curloptions
);

function curl_http_request ($url, $moreoptions = array(), $options = array())
{
    foreach ($moreoptions as $k => $v) $options[$k] = $v;
  $handle = curl_init($url);
  curl_setopt_array($handle, $options);
  ob_start();
  $buffer = curl_exec($handle);
  ob_end_clean();
  curl_close($handle);
  return $buffer;
}
?>

他们在登录时使用一些令牌生成方法,因此除非您知道如何生成相同的令牌,否则只需使用他们的web登录即可

下面是一个典型的登录请求:


好的,很酷,谢谢。我该如何存储cookie,以便运行脚本并看到我登录?我的答案不是关于cookie,但每次登录尝试时都会生成一个唯一的令牌,因此,除非您能够在脚本运行时猜到令牌,只需坚持web登录。好吧,它不允许我登录…我不断得到结果:var xlogin_failed={“error_type”:“非法密码”,“check_token”:“no”}如果您有很好的理由以编程方式访问它们,可能最好联系它们并询问它们是否提供支持的API访问。比试图绕过防护系统要好得多,防护系统显然是专门为阻止你想做的事情而开发的……你让它工作了吗?我在找sameis有什么办法吗?它们可以防止机器人或蜘蛛爬行和下载数据。