[转]抢沙发”程序交流

网上的一些资料。

技术路线:
  (1) 操作系统:Microsoft Windows Server 2003企业版
  (2) 数据库管理系统:Microsoft sql Server 2005
  (3) 程序设计工具:Visual Studio.Net 2005 (C#语言)
 
  而Visual Studio.Net 2005 (C#语言),也属于那种图形控件拖拉,比较容易上手的编程工具.
  首先,大体分析一下要实现"抢沙发"这一目的所要解决的问题.(个人观点,应该还有其他解决方案实现)
  1\自动登陆
一\自动登陆.
  对于固定的一个或者几个论坛,这个步骤的实现就比较简单了.
  下面就以天涯为例,简要介绍一下自动登陆的实现流程.
  首先就是把天涯的网址(www.tianya.cn)传递给一个WEBBROWSER控件.从而获得这个网页的HTML源码(点IE浏览器中的查看->源文件也可以看到)
  HTML源码截选如下:
  引用"

 <!--社区弹出广告end-->
  
<div class="logintab">
  
<form method="post" id="login" name="login">
  
<ul>
  
<li>用户
  
<input id=text1 name=vwriter size=12 maxlength="16"
    onMouseOut
="this.style.backgroundColor='#ffffff'"
    onmouseover
="this.style.backgroundColor = '#E5F0FF'" class=inp>
  </
li>
  
<li>密码 <input id=password1 name=vpassword size="12"
    maxlength
="18" type=password onMouseOut="this.style.backgroundColor='#ffffff'"
    onmouseover
="this.style.backgroundColor = '#E5F0FF'" class=inp></li>
  
<li>
  
<input id="button1" name="button1" type="button"
    onmouseout
="this.style.backgroundColor='#ffffff'"
    onmouseover
="this.style.backgroundColor='#E5F0FF'" class="inp"
  value
="登录社区" onclick="javascript :check_data();" />

   "引用完毕

HTML的源码http://www.atongnet.cn/search.aspx?where=title&keyword=%D4%B4%C2%EB&cid=0&sdate=2007-09-13&edate=2008-09-14&clientDate=Sat%2C+13+Sep+2008+11%3A07%3A07+GMT)看起来有点晕,感觉没有什么头绪.
  但只要大家稍微了解以下它的编码规则问题就迎刃而解了.其实,打个比方来说,就象咱们平时包装礼物时,大盒子套着小盒子一样,一层一层嵌套的,学过计算机的可能知道他的学名,叫DOM树.好了废话不多说,直接进入正题.
  登陆网站我们无非就做了以下2件事情,
  1、输入用户名和密码。
  2、点登陆按钮。
  就OK了。
  那么如何来自动把自己的用户名和密码发给网站的服务器呢?

下面还是让我们把目光转回HTML代码的分析上来,请大家注意这里:

<li>用户
    
<input id=text1 name=vwriter size=12 maxlength="16"
onMouseOut
="this.style.backgroundColor='#ffffff'"
onmouseover
="this.style.backgroundColor = '#E5F0FF'" class=inp></li>

  上面的源码提示我们,在天涯主页中,有一个ID为text1的输入框,而它的VALUE值就是提交给服务器的用户名.(顺便鄙视一下,天涯论坛的程序员,这个ID名起的也太没水准了吧,呵呵)
  在这个FORM中,我们只要把用户名和密码输入框的VALUE值设好,然后激发按钮的点击事件就可以了.
  实现代码如下:
  1\获得用户名\密码以及登陆按钮:
HtmlElement btnSubmit = wbMain.Document.All["button1"];
   HtmlElement tbUserid
= wbMain.Document.All["text1"];
   HtmlElement tbPasswd
= wbMain.Document.All["password1"];

  (上面已经说过,对于已知网站这步非常容易实现.对于想抢未知网站抢沙发有兴趣的同志们可以和我联系,这个比较复杂,需要有一个识别算法,这里就不多说了)
  2\把准备好的用户名和密码传递给控件
   tbUserid.SetAttribute("value", "samm2886");
   tbPasswd.SetAttribute(
"value", "******");
   btnSubmit.InvokeMember(
"click");

  =========================================================
  道这里一个自动登陆天涯的小程序就已经圆满完成了,呵呵,初战告捷了吧.接下来就说一下如何来获得有可能抢到沙发帖子的连接了.

经常混天涯的同志们可能都知道,天涯有这样一个功能,"按论题提交日期排列"----就是它,给我们抢沙发带来了很大的便利.
  和自动登陆一样,再重复如下一个过程.
  1\把要打开页面的地址传递给程序(以天涯杂谈"按论题提交日期排列"为例,代码如下:

wbMain.Navigate("http://cache.tianya.cn/new/publicforum/articleslist.asp?strItem=free&Part=1&strSubItem=&strSubItem2=");

2\提取出页面中的有用连接:还是给出HTML的截选关键部分
  引用:
</table>
  
  
<table width=640 border=0 cellspacing=0>
  
<tr>
<
td width=20>
<
font face=wingdings color=blue>K</font>
</td>
<
td width=370><a href='http://cache.tianya.cn/publicforum/content/free/1/1153174.shtml'
target
='_blank'>问责建设部 --建筑节能房开企业历史欠账4000亿,怎么还?-答:拆分建设部</a></td>
  
<td width=90><a href='/browse/Listwriter.asp?vwriter=非将' target=_blank>非将</a></td>
  
<td width=35 align=center class=tdfont>7</td>
  
<td width=35 align=center class=tdfont>2</td>
  
<td width=90 align=center class=tdfont>3-9 23:32</td>
  
</table>

看一下上面的HTML代码,大家就会发现以下信息:
  1\回帖个数(这也是我们沙发党所最关系的:))(2)
  2\连接地址href='http://cache.tianya.cn/publicforum/content/free/1/1153174.shtml'
  (手动抢沙发一般都不注意这个信息,但自动抢没有它,就是比尔.盖次来,估计他也抢不上这个沙发)
  3\文章标题

问责建设部 --建筑节能房开企业历史欠账4000亿,怎么还?- 答:拆分建设部
  (呵呵,一般沙发党都是不看标题直接强的,哈哈,有没有它一样拉,哈哈)
  4\就是文章的浏览个数(7)和提交时间了(用途不是很大)
做到这里基本就已经接近尾声了哈.....
  接下来怎么做,答案很简单,一个字
  "抢",哈哈.见到回复为0的帖子做为一个 抢沙发的机器人,你怎么能放过它.......
  呵呵.
  把提取出来的连接('http://cache.tianya.cn/publicforum/content/free/1/1153174.shtml' )
  传给WEBBROWS对象......OK了,一个崭新的,没有回复的帖子就展现在你的面前..............
  然后就是开动你的脑筋...想几句好词拉,我可没"抢沙发专业人士"那么有才,能整那么多古诗,呵呵.就退了求其次了,下载一个中文的歌词库,每次在里面随机抽取一句歌词吧,嘎嘎,后面别忘了来一句"天涯万岁"哈哈,否则容易被封号的.

总结一下,其实就需要掌握一个东西 WEBBROWSER控件的应用.整个程序就是重复4次变可
  第一次:
  输入天涯网址.并获得并设置用户\密码输入框,然后激发登陆按钮的点击事件.完成自动登陆
  第二次:
  输入天涯杂谈"按论题提交日期排列"网址,并提取出回复为0网页的连接.
  第3次:
  输入第2次提取出来的网址,获得并设置回复输入框,然后激发"发表"按钮的点击事件.抢沙发完成.....


  这沙发抢的是 没日没夜,只要你连上因特网,IE 都不用打开,(经过测试,系统资源不大,如果机器不行,可以用多线承,或者干脆发到平时利用率不是很高的服务器上去) 千千万万个沙发就收入囊中了.

posted on 2011-06-15 19:19  LkSh  阅读(449)  评论(0编辑  收藏  举报

导航