最近,我已成功使用JSON插件获取维基页面的内容:
$username = '****';
$password = '****';
$sc = new Serverclient_helper();
$login = "http://********/api.php?action=login&lgname=$username&lgpassword=$password";
$content = $sc->getContent($login,array(),false);
$host = "http://******/api.php?action=parse&format=json&page=Main";
$content = $sc->getContent($host);
$content = json_decode($content);
今天我尝试过这样做,但是另一个页面也需要登录,比如维基页面。它没有成功。我认为这是因为这个页面没有维基页面的结构。 Here something to wiki pages.我已经阅读了很多内容,并且我了解到我的页面正在使用基于表单的身份验证。但我仍然想知道如何访问页面的整个内容。
我也使用了curl_setopt,但它没有帮助我获取内容。只有登录页面被显示,但我没有登录。
这是我的代码:
$username='*****';
$password='*****';
$location='http://*****/startphp';
$mycurl = curl_init ();
curl_setopt($mycurl,CURLOPT_URL,$location);
curl_setopt($mycurl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($mycurl,CURLOPT_USERPWD,"$username:$password");
curl_setopt($mycurl, CURLOPT_TIMEOUT, 10);
$result = curl_exec ($mycurl);
var_dump($result);
提前致谢!
答案 0 :(得分:0)
CURLOPT_USERPWD
仅适用于基本HTTP身份验证。
您需要使用与服务匹配的POST
命令。
$data = array('username' => 'User', 'password' => 'Pass');
curl_setopt($ch, CURLOPT_POST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
您还需要考虑存储网站提供的SESSION
使用CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
个选项