模拟登陆搜狐邮箱,第一次已经成功,再次用第一次生成的cookie登陆失败,求救!!!

PHP编程者 2011-04-07 03:05:42
下列代码,第一次已经登陆成功,再次用第一次生成的cookie登陆则失败,问题出在哪?

function checklogin( $user, $password )
{
$headers_login = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; MS-RTC LM 8; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; CIBA)',
'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Connection' => 'keep-alive',
);

$url = "http://passport.sohu.com/sso/login.jsp";
$url = $url."?userid=".urlencode( $user );
$url = $url."&password=".md5( $password );
$url = $url."&appid=1000&persistentcookie=0&isSLogin=1&s=".time( )."&b=1&w=1366&pwdtype=1&v=26";
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_login);
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_HEADER,1);

$contents = curl_exec( $ch );
// echo $contents;exit;
curl_close($ch);

//第二步:再次跳转到邮箱首面
$headers = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; MS-RTC LM 8; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; CIBA)',
'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Connection' => 'keep-alive',
);
$ch = curl_init('https://mail.sohu.com/bapp/81/main');
curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_COOKIEFILE,COOKIEJAR);
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
curl_setopt($ch,CURLOPT_HEADER,1);
$str2 = curl_exec($ch);
echo $str2;exit; //此处echo的值为空白,为什么登陆失败?
curl_close($ch);


if ( strpos( $contents, "success" ) === false )
{
return 0;
}
return 1;
}
...全文
765 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
PHP编程者 2011-07-07
  • 打赏
  • 举报
回复
期待搜狐邮箱的获取代码
zongwuzong 2011-04-29
  • 打赏
  • 举报
回复
time().random
PHP编程者 2011-04-13
  • 打赏
  • 举报
回复
隔了几天,再顶一次,还是期待答案中。。。
PHP编程者 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 falizixun2 的回复:]

分太少==》严重打击参与者的积极性!

个人观点,不好意思。
[/Quote]自己没多少分,所以省着点用,另一个帖子已经加到顶点100,如果有正确答案,这个也可以加分到顶点。
PHP编程者 2011-04-08
  • 打赏
  • 举报
回复
改成这样,还是不行

<?php
define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) ); //定义COOKIES存放的路径,要有操作的权限
define( "TIMEOUT", 1000 ); //超时设定
/**
* sohu
*/

class sohu
{

function checklogin( $user, $password )
{
/* 第一步 */
$headers = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)',
'Accept' => '*/*',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Keep-Alive' => '115',
'Accept-Encoding' => 'gzip,deflate',
'Accept-Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7',
'Referer' => 'http://mail.sohu.com/',
// 'Cookie' => 'IPLOC=CN3100; SUV=1104061651306300; WapMailCookie=1302080810726|helloqhq@sohu.com|1|58.246.67.38|66910e28127184478ad2f84ea5ed1436; lastdomain=1303434229|aGVsbG9xaHFAc29odS5jb218|sohu.com|1; last_update_time=1302167850; JSESSIONID=abcR5Ln9pd1Zwfj0ROY8s; ppmdig=1302240196000000f21d8ff27978dab636f40ab3b6f988e7',
'Proxy-Connection' => 'keep-alive'
);

// $cookie1='IPLOC=CN3100; SUV=1104061651306300; lastdomain=1303356714|aGVsbG9xaHFAc29odS5jb218|sohu.com|1';
$url = "http://mail.sohu.com";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
// curl_setopt($ch,CURLOPT_COOKIEFILE,COOKIEJAR);
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_HEADER,1);

$contents = curl_exec( $ch );
curl_close($ch);

// $this->readcookies( COOKIEJAR, $cookies );
// echo "<pre>";
// print_r($cookies);
// echo "</pre>";
// exit;

/* 第二步 */
$headers = array(
'Host' => 'passport.sohu.com',
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)',
'Accept' => '*/*',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Keep-Alive' => '115',
'Accept-Encoding' => 'gzip,deflate',
'Accept-Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7',
'Referer' => 'http://mail.sohu.com/',
// 'Cookie' => 'IPLOC=CN3100; SUV=1104061651306300; lastdomain=1303356714|aGVsbG9xaHFAc29odS5jb218|sohu.com|1',
'Proxy-Connection' => 'keep-alive'
);

// $cookie1='IPLOC=CN3100; SUV=1104061651306300; lastdomain=1303356714|aGVsbG9xaHFAc29odS5jb218|sohu.com|1';
$url = "http://passport.sohu.com/sso/login.jsp";
$url = $url."?userid=".urlencode( $user );
$url = $url."&password=".md5( $password );
$url = $url."&appid=1000&persistentcookie=0&isSLogin=1&s=".time( )."&b=2&w=1366&pwdtype=1&v=26";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
curl_setopt($ch,CURLOPT_COOKIEFILE,COOKIEJAR);
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_HEADER,1);

$contents = curl_exec( $ch );
curl_close($ch);
// echo $contents;
$this->readcookies( COOKIEJAR, $cookies );
// echo "<pre>";
// print_r($cookies);
// echo "</pre>";
// exit;

/* 第三步 */
$headers = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)',
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Keep-Alive' => '115',
'Accept-Encoding' => 'gzip,deflate',
'Accept-Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7',
'Referer' => 'http://mail.sohu.com/',
// 'Cookie' => "IPLOC=CN3100; SUV=1104061651306300; WapMailCookie=1302080810726|".$user."|1|58.246.67.38|66910e28127184478ad2f84ea5ed1436; last_update_time=".time()."; crossdomain=1302224576101",
'Proxy-Connection' => 'keep-alive'
);
$ch = curl_init('http://mail.sohu.com/');
curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_COOKIEFILE,COOKIEJAR);
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
curl_setopt($ch,CURLOPT_HEADER,1);
$str2 = curl_exec($ch);
// echo $str2;exit;
curl_close($ch);
// echo $str2;
// $this->readcookies( COOKIEJAR, $cookies );
// echo "<pre>";
// print_r($cookies);
// echo "</pre>";
// exit;


/* 第四步 */
$headers = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)',
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Keep-Alive' => '115',
'Accept-Encoding' => 'gzip,deflate',
'Accept-Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7',
'Referer' => 'http://mail.sohu.com/',
'Proxy-Connection' => 'keep-alive'
);
$ch = curl_init('http://mail.sohu.com/servlet/LoginServlet?appid=1000');
curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_COOKIEFILE,COOKIEJAR);
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
curl_setopt($ch,CURLOPT_HEADER,1);
$str3 = curl_exec($ch);

curl_close($ch);
// echo $str3;exit;

if ( strpos( $contents, "success" ) === false )
{
return 0;
}
return 1;
}

function getcontacts( $user, $password, &$result )
{
if ( !$this->checklogin( $user, $password ) )
{
return 'checklogin失败';
}
$cookies = array( );
$bRet = $this->readcookies( COOKIEJAR, $cookies );
// echo "<pre>";
// print_r($cookies);
// echo "</pre>";
// exit;
if ( !$bRet && !$cookies['JSESSIONID'] )
{
return 'readcookies失败';
}
$ch = curl_init( );
curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );

$headers = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)',
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Keep-Alive' => '115',
'Accept-Encoding' => 'gzip,deflate',
'Accept-Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7',
'Referer' => 'http://mail.sohu.com/',
'Proxy-Connection' => 'keep-alive'
);

curl_setopt( $ch, CURLOPT_URL, "http://mail.sohu.com/bapp/81/main" );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// curl_setopt( $ch, CURLOPT_USERAGENT, USERAGENT );
// curl_setopt($ch, CURLOPT_HEADER, 1);

$content = curl_exec( $ch );
echo $content;exit;

curl_close( $ch );
$bRet = $this->_parsedata( $content, $result );
return $bRet;
}

function _parsedata( $content, &$ar )
{
$ar = array( );
if ( !$content )
{
return '获取内容为空';;
}
$data = json_decode( $content );

unset( $content );
foreach ( $data->listString as $value )
{
if ( preg_match_all( "/[a-z0-9_\\.\\-]+@[a-z0-9\\-]+\\.[a-z]{2,6}/i", $value->email, $matches ) )
{
$emails = array_unique( $matches[0] );
unset( $matches );
foreach ( $emails as $email )
{
$ar[$email] = $value->name;
}
}
}
return $ar;
}

function readcookies( $file, &$result )
{
$fp = fopen( $file, "r" );
while ( !feof( $fp ) )
{
$buffer = fgets( $fp, 4096 );
$tmp = split( "\t", $buffer );
$result[trim( $tmp[5] )] = trim( $tmp[6] );
}
return 1;
}

}

$contacts = new sohu;

$res = $contacts->getcontacts('****@sohu.com','****',$result);

print_r($res);
?>

kaifadi 2011-04-07
  • 打赏
  • 举报
回复
分太少==》严重打击参与者的积极性!

个人观点,不好意思。
PHP编程者 2011-04-07
  • 打赏
  • 举报
回复
改了改,好像有点进步,但还是不行,最后echo后会跳到登陆页面,并没有进入个人邮箱首页,为什么?

<?php
define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) ); //定义COOKIES存放的路径,要有操作的权限
define( "TIMEOUT", 1000 ); //超时设定
/**
* sohu
*/

class sohu
{

function checklogin( $user, $password )
{
$headers = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)',
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Keep-Alive' => '115',
'Accept-Encoding' => 'gzip,deflate',
'Accept-Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7',
'Referer' => 'http://mail.sohu.com/',
'Proxy-Connection' => 'keep-alive'
);

$url = "http://passport.sohu.com/sso/login.jsp";
$url = $url."?userid=".urlencode( $user );
$url = $url."&password=".md5( $password );
$url = $url."&appid=1000&persistentcookie=0&isSLogin=1&s=".time( )."&b=1&w=1366&pwdtype=1&v=26";
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_login);
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_HEADER,1);

$contents = curl_exec( $ch );
// echo $contents;exit;
curl_close($ch);

//第二步:再次跳转到邮箱首面
$headers = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)',
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Keep-Alive' => '115',
'Accept-Encoding' => 'gzip,deflate',
'Accept-Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7',
'Referer' => 'http://mail.sohu.com/',
'Proxy-Connection' => 'keep-alive'
);
$ch = curl_init('http://mail.sohu.com/servlet/LoginServlet?appid=1000');
curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_COOKIEFILE,COOKIEJAR);
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
curl_setopt($ch,CURLOPT_HEADER,1);
$str2 = curl_exec($ch);
// echo $str2;exit;
curl_close($ch);


if ( strpos( $contents, "success" ) === false )
{
return 0;
}
return 1;
}

function getcontacts( $user, $password, &$result )
{
if ( !$this->checklogin( $user, $password ) )
{
return 'checklogin失败';
}
$cookies = array( );
$bRet = $this->readcookies( COOKIEJAR, $cookies );

if ( !$bRet && !$cookies['JSESSIONID'] )
{
return 'readcookies失败';
}
$ch = curl_init( );
curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );

// $headers = array(
// 'Host' => 'mail.sohu.com',
// 'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)',
// 'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
// 'Accept_Language' => 'zh-cn,zh;q=0.5',
// 'UA-CPU' => 'x86',
// 'Keep-Alive' => '115',
// 'Accept-Encoding' => 'gzip,deflate',
// 'Accept-Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7',
// 'Referer' => 'http://mail.sohu.com/',
// 'Proxy-Connection' => 'keep-alive'
// );

curl_setopt( $ch, CURLOPT_URL, "http://mail.sohu.com/bapp/81/main" );
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// curl_setopt( $ch, CURLOPT_USERAGENT, USERAGENT );
// curl_setopt($ch, CURLOPT_HEADER, 1);

$content = curl_exec( $ch );
echo $content;exit; //这里echo后会跳到登陆页面,并没有进入个人邮箱首页,为什么?

curl_close( $ch );
$bRet = $this->_parsedata( $content, $result );
return $bRet;
}

function _parsedata( $content, &$ar )
{
$ar = array( );
if ( !$content )
{
return '获取内容为空';;
}
$data = json_decode( $content );

unset( $content );
foreach ( $data->listString as $value )
{
if ( preg_match_all( "/[a-z0-9_\\.\\-]+@[a-z0-9\\-]+\\.[a-z]{2,6}/i", $value->email, $matches ) )
{
$emails = array_unique( $matches[0] );
unset( $matches );
foreach ( $emails as $email )
{
$ar[$email] = $value->name;
}
}
}
return $ar;
}

function readcookies( $file, &$result )
{
$fp = fopen( $file, "r" );
while ( !feof( $fp ) )
{
$buffer = fgets( $fp, 4096 );
$tmp = split( "\t", $buffer );
$result[trim( $tmp[5] )] = trim( $tmp[6] );
}
return 1;
}

}

$contacts = new sohu;

$res = $contacts->getcontacts('*****@sohu.com','*****',$result);

print_r($res);
?>



PHP编程者 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ifonlyu 的回复:]

更正
实效 应为 失效
[/Quote]想了想,既然是模拟登陆,就要想法摆脱时间戳的问题,其实最终就是想登陆进sohu邮箱,获得联系人列表,现在把所有代码都贴出来,麻烦看下该怎么实现。

<?php
define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) ); //定义COOKIES存放的路径,要有操作的权限
define( "TIMEOUT", 1000 ); //超时设定
/**
* sohu
*/

class sohu
{

function checklogin( $user, $password )
{
$headers_login = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; MS-RTC LM 8; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; CIBA)',
'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'UA-CPU' => 'x86',
'Connection' => 'keep-alive'
);

$url = "http://passport.sohu.com/sso/login.jsp";
$url = $url."?userid=".urlencode( $user );
$url = $url."&password=".md5( $password );
$url = $url."&appid=1000&persistentcookie=0&isSLogin=1&s=".time( )."&b=1&w=1366&pwdtype=1&v=26";
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_login);
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_HEADER,1);

$contents = curl_exec( $ch );
// echo $contents;exit;
curl_close($ch);

if ( strpos( $contents, "success" ) === false )
{
return 0;
}
return 1;
}

function getcontacts( $user, $password, &$result )
{
if ( !$this->checklogin( $user, $password ) )
{
return 'checklogin失败';
}
$cookies = array( );
$bRet = $this->readcookies( COOKIEJAR, $cookies );

if ( !$bRet && !$cookies['JSESSIONID'] )
{
return 'readcookies失败';
}
$ch = curl_init( );
curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );

$headers = array(
'Host' => 'mail.sohu.com',
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2',
'Accept' => 'text/javascript, text/html, application/xml',
'Accept_Language' => 'zh-cn,zh;q=0.5',
'Accept_Encoding' => 'gzip,deflate',
'Accept_Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7\r\n',
'Keep-Alive' => '115',
'Connection' => 'keep-alive',
'X-Requested-With'=> 'XMLHttpRequest',
'Content_Type' => 'application/x-www-form-urlencoded; charset=UTF-8',
'Referer' => 'http://mail.sohu.com/'
);

curl_setopt( $ch, CURLOPT_URL, "https://mail.sohu.com/bapp/81/main#addressList" );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_USERAGENT, USERAGENT );
curl_setopt($ch, CURLOPT_HEADER, 1);

$content = curl_exec( $ch );
echo $content;exit;

curl_close( $ch );
$bRet = $this->_parsedata( $content, $result );
return $bRet;
}

function _parsedata( $content, &$ar )
{
$ar = array( );
if ( !$content )
{
return '获取内容为空';;
}
$data = json_decode( $content );

unset( $content );
foreach ( $data->listString as $value )
{
if ( preg_match_all( "/[a-z0-9_\\.\\-]+@[a-z0-9\\-]+\\.[a-z]{2,6}/i", $value->email, $matches ) )
{
$emails = array_unique( $matches[0] );
unset( $matches );
foreach ( $emails as $email )
{
$ar[$email] = $value->name;
}
}
}
return $ar;
}

function readcookies( $file, &$result )
{
$fp = fopen( $file, "r" );
while ( !feof( $fp ) )
{
$buffer = fgets( $fp, 4096 );
$tmp = split( "\t", $buffer );
$result[trim( $tmp[5] )] = trim( $tmp[6] );
}
return 1;
}

}

$contacts = new sohu;

$res = $contacts->getcontacts('****','****',$result);

print_r($res);
?>



PHP编程者 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ifonlyu 的回复:]

我看url里&s=".time( )."& 有时间戳啊,
第2次登录的时间肯定不一样了么,sohu对cookies的编码可能导致原来的cookies实效
[/Quote]恩,有道理,再次登录时的时间戳怎么传递过去呢,还是get方式?
RICKI 2011-04-07
  • 打赏
  • 举报
回复
更正
实效 应为 失效
RICKI 2011-04-07
  • 打赏
  • 举报
回复
我看url里&s=".time( )."& 有时间戳啊,
第2次登录的时间肯定不一样了么,sohu对cookies的编码可能导致原来的cookies实效
PHP编程者 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ifonlyu 的回复:]

呃,时间标记?
[/Quote]什么意思?能说仔细点吗?
RICKI 2011-04-07
  • 打赏
  • 举报
回复
呃,时间标记?
内容概要:本文档聚焦于“配电网N-1扩展规划”研究,采用MOPGA-NSGA-II多目标优化算法,结合Matlab编程实现,系统探讨了满足N-1安全准则的配电网扩展规划方法。研究内容涵盖配电网可靠性提升、网络重构、分布式电源接入等关键技术环节,通过构建多目标优化模型,综合考虑系统安全性、经济性与稳定性,实现对扩展方案的科学评估与优选,确保在单一元件故障条件下仍能维持可靠供电。文档还介绍了多种智能优化算法(如粒子群、遗传算法等)在电力系统规划中的应用,突出模型的实用性、工程可操作性及科研复现价值,适用于复杂电力系统优化问题的求解与仿真分析。; 适合人群:具备电力系统基础理论知识、熟悉Matlab编程语言,从事配电网规划、电力系统优化调度、智能算法应用等相关领域的科研人员与工程技术人员,特别适合高校研究生及电力行业研发人员。; 使用场景及目标:①掌握基于MOPGA-NSGA-II等多目标进化算法的配电网扩展规划建模流程;②深入理解N-1安全准则在电网规划中的具体实施机制与技术路径;③学习如何利用Matlab实现电力系统优化问题的建模、求解与可视化分析,提升在实际科研项目或工程项目中的规划与决策能力。; 阅读建议:建议读者结合文档中提供的Matlab代码进行动手实践,重点剖析目标函数设计、约束条件设定及算法参数调优等核心环节,同时可延伸学习文档中提及的储能配置、故障定位、鲁棒优化等相关课题,以拓展在智能电网与综合能源系统领域的研究视野。

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧