免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2699 | 回复: 3
打印 上一主题 下一主题

php程序向百度空间发文章的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-06 23:20 |只看该作者 |倒序浏览
已经可以登录了。但是发文章老不成功。

1、登录通行证。将cookies保存下来
2、打开发布文章页面,将此页面里的cookeis也保存下来
3、用2步的cookies,将文章表单想发布文章action post。

我拿httpwatch分析了一下,cookies并没有少。但是不知道为什么就是发布不了。各位大虾帮忙看看。


  1. <?php
  2. include("Snoopy.class.php");

  3. $username = "kenvinqu";
  4. $password = "*****";
  5. $blogurl = [url=http://hi.baidu.com/kenvin]http://hi.baidu.com/kenvin[/url];

  6. // **** 第一步: 登录
  7. $url = "http://passport.baidu.com/?login";
  8. $snoopy = new Snoopy();

  9. $data = array(
  10. "tpl" => "sp",
  11. "u" => $blogurl,
  12. "return_method" => "get",
  13. "psp_tt" => "0",
  14. "username" => $username,
  15. "password" => $password
  16. );

  17. $snoopy->submit($url, $data);
  18. $snoopy->setcookies();

  19. print_r($snoopy->cookies);


  20. // **** 第二步: 访问发布文章页面,获取cookies
  21. $url = $blogurl."/creat/blog/";
  22. $snoopy->fetch($url);
  23. $snoopy->setcookies();

  24. $cookies = $snoopy->cookies;
  25. //$cookies['BAIDUID'] = str_replace($cookies['BAIDUID'], ":FG=1", "");
  26. $cookies['BD_UTK_DVT'] = 1;


  27. print_r($snoopy->cookies);


  28. // **** 第三步: 发布文章 post数据
  29. $snoopy = new Snoopy();
  30. $url = $blogurl."/commit";
  31. //$url = "http://hi.baidu.com/kenvin/modify/spbasic/0";
  32. //$url = "http://localhost/t.php";

  33. $snoopy->referer = $blogurl."/creat/blog/";
  34. $snoopy->cookies = $cookies ;                      // 将上面2步的cookies附加

  35. $data = array(
  36. "ct"=>1,
  37. "cm" => 1,
  38. "spRefURL" => $blogurl."/creat/blog/",
  39. "spBlogTitle" => "5555555",
  40. "spBlogText" => "ssssssssssssssss sdf"  ,
  41. "spBlogCatName" => "美女",
  42. "spIsCmtAllow" => "1",
  43. "spBlogPower" => "0",
  44. "spVcode" => "",
  45. "spVerifyKey" => "",
  46. "tj" => "",
  47. );
  48. $snoopy->submit($url, $data);
  49. //$snoopy->fetch($url);

  50. ?>
  51. <html><head><meta http-equiv=Content-Type c><title> </title></head><body>

  52. <?php

  53. echo '<textarea name="" rows="30" cols="80">';
  54. print_r( $snoopy );
  55. echo '</textarea>';
  56. ?>


复制代码



解决的问题:
1、成功登录。
2、用程序能成功获取发布文章页面以及其他任何需要登录才能访问的页面。说明登录没有问题

遇到的问题:
发布文章url : http://hi.baidu.com/kenvin/commit
只要向此urlpost数据,返回的http header得不到任何信息。很奇怪。

论坛徽章:
0
2 [报告]
发表于 2008-04-07 08:54 |只看该作者
用原始的socket方式 试试

论坛徽章:
0
3 [报告]
发表于 2008-04-07 12:22 |只看该作者
snoopy里就是用socket

论坛徽章:
0
4 [报告]
发表于 2008-04-07 17:49 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP