SNOOPY 實現模擬登陸

採集論壇第一步就是要模擬登陸,由於各個站點登錄表單各不相同,驗證方式又是多種多樣,所以直接提交用戶名密碼 到登錄頁面就比較繁瑣。
所以我們採用cookie來模擬登陸無疑是最佳捷徑。
對象www.discuz.net
用戶名liuyuntest
密碼123456
一 首先我們手工登錄下,記錄下cookie
dznet_cookietime=2592000;dznet_onlineusernum=7816;dznet_sid=QtlC87;
dznet_auth=6bbeCQrzGv4eliNMLgU%2FlGZSpzbrsauGO1l0OBp6VQw5p0bcEg0xd4slYCM2ks%2FL0YCVYSO7XP2z8GMaxkPDUbXZCWft;
checkpm=1
(目前主流瀏覽都有插件查看cookie)
二 採用snoopy模擬登錄

  1. include("snoopy.php");
  2. $snoopy = new Snoopy;
  3. $snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TheWorld)";//這項是瀏覽器信息,前面你用什麼瀏覽器查看cookie,就用那個瀏覽器的信息(ps:$_SERVER可以查看到瀏覽器的信息)
  4. $snoopy->referer = "http://www.discuz.net/";
  5. $snoopy->rawheaders["COOKIE"]= "dznet_cookietime=2592000;dznet_onlineusernum=7816;dznet_sid=QtlC87;
  6. dznet_auth=6bbeCQrzGv4eliNMLgU%2FlGZSpzbrsauGO1l0OBp6VQw5p0bcEg0xd4slYCM2ks%2FL0YCVYSO7XP2z8GMaxkPDUbXZCWft;
  7. checkpm=1";
  8. $snoopy->fetch("http://www.discuz.net/post.php?action=newthread&fid=2&extra=page%3D1");//獲取發貼頁面
  9. echo $tempCn = $snoopy->results;

三 採用curl 模擬登錄

  1. $url = "http://www.discuz.net/";
  2. $useragent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TheWorld)";
  3. $cookie = "dznet_cookietime=2592000;dznet_onlineusernum=7816;dznet_sid=QtlC87;
  4. dznet_auth=6bbeCQrzGv4eliNMLgU%2FlGZSpzbrsauGO1l0OBp6VQw5p0bcEg0xd4slYCM2ks%2FL0YCVYSO7XP2z8GMaxkPDUbXZCWft;
  5. checkpm=1";
  6. $ch= curl_init();
  7. curl_setopt($ch, CURLOPT_URL,$url);
  8. curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  9. curl_setopt($ch, CURLOPT_REFERER, "http://www.discuz.net/index.php");
  10. curl_setopt($ch, CURLOPT_HEADER, false);
  11. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  12. curl_setopt ($ch, CURLOPT_USERAGENT, $useragent);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章