說起類比登入,很多人可能會想起CURL。其實除了CURL,snoopy也是可以實現類比登陸的。本文就執行個體分析了snoopy與curl兩種實現方法,希望對大家有所協助。
php類比登陸的實現方法,具體執行個體代碼如下:
1)使用snoopy類比登陸:
<?phpset_time_limit(0);require "Snoopy.class.php";$snoopy=new Snoopy();$snoopy->referer='http://www.***.net/';$snoopy->agent="Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0";$submit_vars['email'] ='登陸帳號';$submit_vars['password'] ='登陸密碼';$url='http://www.***.net/test/Login.php';//登陸資料提交的URL地址$snoopy->submit($url,$submit_vars);$snoopy->fetch("http://www.***.net/");//希望擷取的頁面資料echo $snoopy->results;//m.***.net
2)使用curl類比登陸:
<?phpset_time_limit(0);$cookie_file=tempnam('./tmp','cookie');//tmp目錄需要先建立好$ch=curl_init();$login_url='http://www.***.net/PLogin.do';$curlPost="email=登陸帳號&password=登陸密碼";curl_setopt($ch,CURLOPT_URL,$login_url);//啟用時會將標頭檔的資訊作為資料流輸出curl_setopt($ch,CURLOPT_HEADER,0); //設定是否輸出頁面內容curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POST,1); //佈建要求發送方式,post或get,CURLOPT_POST或CURLOPT_GETcurl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file); //儲存cookiecurl_exec($ch);curl_close($ch);$ch=curl_init();$login_url2="http://www.***.net/";curl_setopt($ch,CURLOPT_URL,$login_url2);curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file); //讀取cookiecurl_exec($ch);curl_close($ch);
相關推薦:
php curl錯誤排查的方法詳解
PHP CURL cookie傳遞的方法介紹
php snoopy採集類介紹_PHP教程