腦友記廣場 -> 新手上路 -> 請問需要登錄的頁面如何實現自動登錄 登錄 -> 註冊 -> 回復主題 -> 發表主題

gary23 2008-02-17 16:27
請問需要登錄的頁面如何實現自動登錄

比如:

http://www.knowledgeatwharton.com.cn/index.cfm?fa=Article&articleid=1781&languageid=5

謝謝。

never4get 2008-02-18 20:01
QUOTE:
引用第0樓gary232008-02-17 16:27發表的「請問需要登錄的頁面如何實現自動登錄」:
請問需要登錄的頁面如何實現自動登錄

比如:

http://www.knowledgeatwharton.com.cn/index.cfm?fa=Article&articleid=1781&languageid=5
.......



像這種會 check cookie 的網頁
建議使用 cURL
CODE:


<?
header('Content-type:text/html; charset=utf-8');
$email = 'your e-mail'; //填入你的 a/c

$postn = "rememberme=1&email=$email";
$loginurl = 'http://www.knowledgeatwharton.com.cn/index.cfm?fa=loginuser';
$cookie_jar = '/kw_cookie.txt'; //暫存的 cookie
$url = 'http://www.knowledgeatwharton.com.cn/index.cfm?fa=Article&articleid=1781&languageid=5'; // 想要開啟的 url

//模擬 ie 登入網頁並記錄 cookie
$ch = curl_init();
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; Maxthon; .NET CLR 1.1.4322; .NET CLR 2.0.50727)');
curl_setopt($ch,CURLOPT_URL,$loginurl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postn);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_jar);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_exec($ch);
curl_close($ch);
//

//抓取想要的網頁
$ch2 = curl_init();
curl_setopt($ch2,CURLOPT_URL,$url);
curl_setopt($ch2,CURLOPT_COOKIEFILE,$cookie_jar);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER,1);
$content = curl_exec($ch2);
curl_close($ch2);
//

   
preg_match('/<TABLE class="articleTable">(.*?)<br \/>    <br \/>/s',$content,$ot);
$out = $ot[0].'</table>';
echo $out;
   
?>

zozzen 2008-02-18 23:02
哇! 可以模擬埋 browser , 似乎好 powerful.

now.com.hk 又有冇辦法呢?
我經常用佢聽商台, 但每次login 都覺好煩,
如果可以 fetch 佢個 site 就傻到爆.

至於 now.com.hk 上其他影片如 tvb ,
每次播放都要查你係咪用 netvigator 登入, 否則即使有戶口都唔畀登入.

照咁睇, 如果用 curl , 而在 netvigator 的用戶網頁空間 fetch d 片, 有冇可能 stream 出去畀其他人睇呢?
當中好似涉及 microsoft 的 drm , 越諗越複雜.

gary23 2008-02-24 11:20
never4get 好犀利啊,崇拜,試下先。


查看完整版本: [-- 請問需要登錄的頁面如何實現自動登錄 --] [-- top --]


Powered by PHPWind v4.0.1 Code © 2003-05 PHPWind
Gzip enabled

You can contact us