如题,CURL如何模拟登陆阿里巴巴?偶写的代码总是不能登陆上,纠结个。希望各位能帮帮忙,感激!
附偶写的代码:(代码没整理,请各位将就着下了。)
function trydemo(){
    $login_url = 'https://loginchina.alibaba.com/member/signin.htm';    $post_fields = array();    $post_fields['loginfield'] = 'LoginId';
    $post_fields['loginsubmit'] = 'true';    $post_fields['LoginId'] = 'ahthink';
    $post_fields['Password'] = 'guo1086';
            $post_fields['action'] ='Signin';
    $post_fields['eventSubmitDoPost'] = 'any';
    $post_fields['Done'] ='http://china.alibaba.com/';
    $post_fields['urlType'] = '';
    $post_fields['formSubmit'] = 'Y';
    $ch = curl_init($login_url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");    curl_setopt($ch, CURLOPT_HEADER, 0);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    //curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
    $contents = curl_exec($ch);
    curl_close($ch);
    $cookie_file = tempnam('./temp','cookie');    $ch = curl_init($login_url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    //curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
    curl_exec($ch);
    curl_close($ch);
                 
    $send_url='http://china.alibaba.com/';
    $ch = curl_init($send_url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    //curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
    $contents = curl_exec($ch);
    curl_close($ch);
                        
    die($contents);}
trydemo()

解决方案 »

  1.   

    测试了 比较难,这种https加密的传输很难得到传递的内容 所以模拟就很难控制.没记错的话 淘宝一般都是有token的.
      

  2.   

    肯定是想干些api不允许的事撒...
      

  3.   


    哪里有API??请提示下,我还真没注意到呢。只知道淘宝有,不知巴巴有
      

  4.   

    http://blog.yam.com/qhhbuhtz63/article/40886194不过我没找到官方文档,很搞笑,开放api文档这么难找,是不是不打算给人用。
      

  5.   

    没办法,阿里应该没有这个api接口提供.B/S 你就必须解决模拟登录阿里网站的问题,你可以到威客之类的网站发一下任务看看,有没人接你的任务。
    我刚看了一下阿里官网阿里网没有提供open api ...所以基本上你还得像办法模拟.