百度自动的签到

今天同学问我是否能够用提供cookie,让贴吧自动签到,其实这个功能比较简单。

主要就是一个寻找tbs的过程。

使用php进行请求,再把php文件添加到每天的计划任务就可以了。

那么尝试书写以下代码


<meta charset="utf-8">
<?php

$bd_cookie="";//在这里输入你百度的cookie

//寻找tbs
$fp = fsockopen("tieba.baidu.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$get_string="";
$out = "GET /home/main?un=aaa HTTP/1.1\r\n";//访问任意用户百度主页以获取tbs。
$out .= "Host: tieba.baidu.com\r\n";
$out .= "Referer: http://tieba.baidu.com/\r\n";
$out .= "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36\r\n";
$out .= "Cookie: ".$bd_cookie."\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$get_string .= fgets($fp,128);//处理返回值
}
fclose($fp);
}

//寻找tbs参数,定位tbs第一次出现的位置并且切割参数,得到最终的tbs
$tb_tbs = substr(strstr($get_string, 'PageData.tbs'),16,26);
//输出tbs,以判断是否获取成功
echo "tbs:".$tb_tbs."<br>";
//开始签到
$post_str="ie=utf-8&tbs=".$tb_tbs;
$content_length = strlen($post_str);
$fps = fsockopen("tieba.baidu.com", 80, $errno, $errstr, 50);
if (!$fps) {
echo "$errstr ($errno)<br />\n";
} else {
$out1 = "POST /tbmall/onekeySignin1 HTTP/1.1\r\n";//签到的API
$out1 .= "Host: tieba.baidu.com\r\n";
$out1 .= "Referer: http://tieba.baidu.com/\r\n";
$out1 .= "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36\r\n";
$out1 .= "Cookie: ".$bd_cookie."\r\n";
$out1 .= "Content-Length: ".$content_length."\r\n";
$out1 .= "Connection: close\r\n\r\n";
$out1 .= $post_str."\r\n\r\n";
fwrite($fps, $out1);
while (!feof($fps)) {
echo fgets($fps,126);//处理返回值
}
fclose($fps);
}

只需要使用如上代码,并且将他添加到计划任务中,就可以实现每天的自动签到了。