我正在尝试登录网站并从您必须经过身份验证才能查看的页面中获取内容。我已经进行了一些研究,并看到了一些同时使用 cURL 和 stream_context_create 的示例,但我无法获得任何一种工作方式。我有要登录的页面的 url,以及包含我需要获取的数据的页面。非常感谢您的帮助!
这是我正在使用的:
<?php
$pages = array('home' =>
'https://www.53.com/wps/portal/personal',
'login' =>
'https://www.53.com/wps/portal/personal',
'data' =>
'https://www.53.com/servlet/efsonline/index.html?Messages.SortedBy=DATE,REVERSE');
$ch = curl_init();
//Set options for curl session
$options = array(CURLOPT_USERAGENT => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)',
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_HEADER => TRUE,
//CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_COOKIEFILE => 'cookie.txt',
CURLOPT_COOKIEJAR => 'cookies.txt');
//Hit home page for session cookie
$options[CURLOPT_URL] = $pages['home'];
curl_setopt_array($ch, $options);
curl_exec($ch);
//Login
$options[CURLOPT_URL] = $pages['login'];
$options[CURLOPT_POST] = TRUE;
$options[CURLOPT_POSTFIELDS] = 'uid-input=xxx&pw=xxx';
$options[CURLOPT_FOLLOWLOCATION] = FALSE;
curl_setopt_array($ch, $options);
curl_exec($ch);
//Hit data page
$options[CURLOPT_URL] = $pages['data'];
curl_setopt_array($ch, $options);
$data = curl_exec($ch);
//Output data
echo $data;
//Close curl session
curl_close($ch);
?>
干杯,
安东尼