如何用PHP编写脚本自动在QQ空间发布长尾关键词文章?
- 内容介绍
- 文章标签
- 相关推荐
本文共计786个文字,预计阅读时间需要4分钟。
这是一个使用PHP模拟登录后发送文章到QQ空间的简单程序,需要的伙伴可以参考或改进:
php
// 发送文章到QQ空间$url=http://user.qzone.qq.com/your_qq号/cgi-bin/post_to_blog;$data=title=文章&content=文章内容&hostUin=your_qq号&clientUin=your_qq号&clientIp=你的IP地址&clientVersion=1.2.3.4&logType=1&format=json&source=1&aid=1&appID=1&appKey=1&sign=1;
$ch=curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);curl_setopt($ch, CURLOPT_COOKIE, $cookie);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$result=curl_exec($ch);curl_close($ch);
echo $result;?>
我们这里是一个简单的利用php来模拟登录后再到QQ空间发送文章的一个简单的程序,有需要的朋友可以参考,或改进可以给我意见:www.lai18.com/content/368902.html1.[代码][PHP]代码
<?php //模拟get post请求函数 www.lai18.com /* 函数说明: 功能:请求方式可以get,post,可以发送的cookie,保存的cookiefile文件 参数:$url-----请求url $referer---来源url $postdata----------用于post请求的数据,''为get请求 $cookie---------发送的cookie $cookiefile-----保存的cookiefile文件 返回值:返回获取的源码 */ function request($url,$referer='',$postdata='',$cookie='',$cookiefile=''){ //header设置 $header=''; $header.="Content-Type: application/x-www-form-urlencodedrn";//内容请求类型 $header.="User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)rn";//浏览器字段 $header.="Referer:".$referer."rn";//设置来源地址 $header .= "Cookie:".$cookie ; //设置cookie,默认空 //请求方法get post,通过$postdata空---get,非空----post if($postdata=='')$method='GET'; else $method='POST'; //定义用于创建流的数组 $opts=array(); $opts['b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk=123456789里的g_tk=123456789" target="_blank">b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk=123456789里的g_tk=123456789</a> $_POST['title']---文章标题,不得空 $_POST['content']---文章内容,不得空 */ header('Content-Type:text/html;charset=gb2312'); set_time_limit(0); //ob_end_clean(); //ob_start(); //获取cookie文件,不存在创建,并退出程序 $cookiefile=dirname(__FILE__).'\qq_cookie.txt'; if(!file_exists($cookiefile)){ echo 'qq_cookie.txt不存在,自动创建,请填写抓包的cookie<br>'; file_put_contents($cookiefile,''); die('程序退出'); } //存在,读取cookie else{ $cookie=file_get_contents($cookiefile);//登录cookie //$cookie=urlencode($cookie); } //echo 'cookie:'.$cookie.'<br>'; //构成发表页,post数据等的重要信息 //qq号码 if(emptyempty($_POST['qq'])||preg_match('/[^0-9]/is',$_POST['qq']))die('qq号码有误,必须数字'); else $qq=$_POST['qq'];//qq号 if(emptyempty($_POST['g_tk'])||preg_match('/[^0-9]/is',$_POST['g_tk']))die('post重要参数g_tk不合法,必须数字,请使用抓包的值'); $g_tk=$_POST['g_tk']; $title=emptyempty($_POST['title'])?die('标题不得空'):$_POST['title'];//文章标题 $content=emptyempty($_POST['content'])?die('内容不得空'):$_POST['content'];//内容 $category='个人日记';//分类 $fabiao='b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk='.$g_tk;//发表处理页 $referer='ctc.qzs.qq.com/qzone/v5/toolpages/fp_gbk.html';//来源页 $r1='user.qzone.qq.com/'.$qq.'/infocenter';//列表访问来源页 $postdata='uin='.$qq.'&category='.urlencode($category).'&title='.urlencode($title).'&content='.urlencode($content).'&html='.urlencode('<div class="blog_details_20110920">'.$content.'</div>').'&tweetflag=0&cb_autograph=1&topflag=0&needfeed=0&g_tk='.$g_tk.'&_fp_refer=http%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fnewblog%2Fv5%2Feditor.html%3Fsource%3D1%7Chttp%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fnewblog%2Fv5%2Feditor.html%3Fsource%3D1%3Chttp%3A%2F%2Fuser.qzone.qq.com%2F'.$qq.'%2Fmain';//post数据 //$postdata=urlencode($postdata); //echo $postdata; //发送请求,获取源码 $yuanma=request($fabiao,$r1,$postdata,$cookie,''); if(strpos($yuanma,'发表成功'))echo $title.' 发表成功<br>'; else echo '发表失败:右键查看源码,可以看到具体错误'.$yuanma; ?>
本文共计786个文字,预计阅读时间需要4分钟。
这是一个使用PHP模拟登录后发送文章到QQ空间的简单程序,需要的伙伴可以参考或改进:
php
// 发送文章到QQ空间$url=http://user.qzone.qq.com/your_qq号/cgi-bin/post_to_blog;$data=title=文章&content=文章内容&hostUin=your_qq号&clientUin=your_qq号&clientIp=你的IP地址&clientVersion=1.2.3.4&logType=1&format=json&source=1&aid=1&appID=1&appKey=1&sign=1;
$ch=curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);curl_setopt($ch, CURLOPT_COOKIE, $cookie);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$result=curl_exec($ch);curl_close($ch);
echo $result;?>
我们这里是一个简单的利用php来模拟登录后再到QQ空间发送文章的一个简单的程序,有需要的朋友可以参考,或改进可以给我意见:www.lai18.com/content/368902.html1.[代码][PHP]代码
<?php //模拟get post请求函数 www.lai18.com /* 函数说明: 功能:请求方式可以get,post,可以发送的cookie,保存的cookiefile文件 参数:$url-----请求url $referer---来源url $postdata----------用于post请求的数据,''为get请求 $cookie---------发送的cookie $cookiefile-----保存的cookiefile文件 返回值:返回获取的源码 */ function request($url,$referer='',$postdata='',$cookie='',$cookiefile=''){ //header设置 $header=''; $header.="Content-Type: application/x-www-form-urlencodedrn";//内容请求类型 $header.="User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)rn";//浏览器字段 $header.="Referer:".$referer."rn";//设置来源地址 $header .= "Cookie:".$cookie ; //设置cookie,默认空 //请求方法get post,通过$postdata空---get,非空----post if($postdata=='')$method='GET'; else $method='POST'; //定义用于创建流的数组 $opts=array(); $opts['b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk=123456789里的g_tk=123456789" target="_blank">b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk=123456789里的g_tk=123456789</a> $_POST['title']---文章标题,不得空 $_POST['content']---文章内容,不得空 */ header('Content-Type:text/html;charset=gb2312'); set_time_limit(0); //ob_end_clean(); //ob_start(); //获取cookie文件,不存在创建,并退出程序 $cookiefile=dirname(__FILE__).'\qq_cookie.txt'; if(!file_exists($cookiefile)){ echo 'qq_cookie.txt不存在,自动创建,请填写抓包的cookie<br>'; file_put_contents($cookiefile,''); die('程序退出'); } //存在,读取cookie else{ $cookie=file_get_contents($cookiefile);//登录cookie //$cookie=urlencode($cookie); } //echo 'cookie:'.$cookie.'<br>'; //构成发表页,post数据等的重要信息 //qq号码 if(emptyempty($_POST['qq'])||preg_match('/[^0-9]/is',$_POST['qq']))die('qq号码有误,必须数字'); else $qq=$_POST['qq'];//qq号 if(emptyempty($_POST['g_tk'])||preg_match('/[^0-9]/is',$_POST['g_tk']))die('post重要参数g_tk不合法,必须数字,请使用抓包的值'); $g_tk=$_POST['g_tk']; $title=emptyempty($_POST['title'])?die('标题不得空'):$_POST['title'];//文章标题 $content=emptyempty($_POST['content'])?die('内容不得空'):$_POST['content'];//内容 $category='个人日记';//分类 $fabiao='b1.qzone.qq.com/cgi-bin/blognew/blog_add?g_tk='.$g_tk;//发表处理页 $referer='ctc.qzs.qq.com/qzone/v5/toolpages/fp_gbk.html';//来源页 $r1='user.qzone.qq.com/'.$qq.'/infocenter';//列表访问来源页 $postdata='uin='.$qq.'&category='.urlencode($category).'&title='.urlencode($title).'&content='.urlencode($content).'&html='.urlencode('<div class="blog_details_20110920">'.$content.'</div>').'&tweetflag=0&cb_autograph=1&topflag=0&needfeed=0&g_tk='.$g_tk.'&_fp_refer=http%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fnewblog%2Fv5%2Feditor.html%3Fsource%3D1%7Chttp%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fnewblog%2Fv5%2Feditor.html%3Fsource%3D1%3Chttp%3A%2F%2Fuser.qzone.qq.com%2F'.$qq.'%2Fmain';//post数据 //$postdata=urlencode($postdata); //echo $postdata; //发送请求,获取源码 $yuanma=request($fabiao,$r1,$postdata,$cookie,''); if(strpos($yuanma,'发表成功'))echo $title.' 发表成功<br>'; else echo '发表失败:右键查看源码,可以看到具体错误'.$yuanma; ?>

