curl模拟登录了论坛,怎么获取各个板块的帖子

几位 发布于 2014/11/04 17:32
阅读 437
收藏 0

wiindow 下 我用curl模拟登录了自己的论坛,我想获取论坛中各个板块(旅游度假、教育培训、创业就业...)的帖子(标题、内容、发布者、和时间...)。请问大家,下面该怎么做? 我把模拟登录的代码贴在下面,请大家帮忙!!!感谢不尽(我的discuz是X3的)

<?php
!extension_loaded('curl') && die('The curl extension is not loaded.');   
    
$discuz_url = 'http://xy.ixueyou.com';//论坛地址   
$login_url = $discuz_url .'/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes';//登录页地址   
$url = $discuz_url.'/portal.php'; //跳转页地址
$post_fields = array();  
//使用用户名登录
$post_fields['fastloginfield'] = 'username';
//以下两项不需要修改   
$post_fields['loginfield'] = 'username';   
$post_fields['loginsubmit'] = 'true';   
//用户名和密码,必须填写   
$post_fields['username'] = ' ';   
$post_fields['password'] = ' ';   
//安全提问   
$post_fields['questionid'] = 0;   
$post_fields['answer'] = '';   
//cookie时间
$post_fields['cookietime'] = 2592000;
//@todo 验证码   
$post_fields['seccodeverify'] = '';   
    
//获取表单FORMHASH  
$ch = curl_init($login_url);   
curl_setopt($ch, CURLOPT_HEADER, 0);   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
$contents = curl_exec($ch);   
curl_close($ch);
preg_match('/<input\s*type="hidden"\s*name="formhash"\s*value="(.*?)"\s*\/>/i', $contents, $matches);
if(!empty($matches)) {   
    $formhash = $matches[1];   
} else {   
    die('Not found the forumhash.');   
}
    
   
//POST数据,获取COOKIE   
//$cookie_file = dirname(__FILE__) . '/cookie.txt';   
$cookie_file = tempnam('cookie','cookie');   
$ch = curl_init($login_url);   
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_exec($ch);   
curl_close($ch);   
    
//带着上面得到的COOKIE获取需要登录后才能查看的页面内容   
$ch = curl_init($url);   
curl_setopt($ch, CURLOPT_HEADER, 0);   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);   
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);   
$contents = curl_exec($ch);   
curl_close($ch);

?>

加载中
返回顶部
顶部