博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET 搭建贴吧机器人(零)
阅读量:4303 次
发布时间:2019-05-27

本文共 1161 字,大约阅读时间需要 3 分钟。

    各种各样的贴吧自动回复、签到机器人屡见不鲜,基于PHP的也随处可见。用C#语言写的也有,不过以单机版居多,但是既然是机器人,一般是需要24小时不断运行的,这就需要在服务器上运行了。

    不管怎么实现,第一步是要登录自己的贴吧帐号的。

    贴吧帐号的登陆流程一般是:

     1.登陆前获取一个BAIDUID(baidu就算你没登陆也会给你分配一个BAIDUID),保存到Cookie中去。(如果正确,则获得的cookie包含3个成员:BAIDUID,BIDUPSID,PSTM)

     2.根据保存的Cookie获取一个token。如果token存在,则表明网络连接正常。为后续的登录做准备。(如果获得正确,则获得的cookie包含4个成员,比上一次多了HOSUPPORT)

     3.向百度发送登陆数据获取验证码地址(如果有验证码,则获得Cookie包含5个成员,比上一个多了个UBI)

     4.向百度发送包含验证码的数据,这样就正常登录了。(获得的Cookie数量有11个,比上一次多了HISTORY,SAVEUSERID,USERNAMETYPE,PTOKEN,STOKEN还有关键的BDUSS,总共11个cookie)

     遇到的困难也是许多人都遇到的问题。NET 4.0以后对Cookie过期的处理。

     在3.5及之前,系统对cookie过期时间为空的认定为永不过期。而在4.0及之后,则认定过期时间是1938年1月1日,即早就过期了,就自动清空,这样就导致在第二部获取token时前面获取的cookie什么都不包含,也就获取不了token,难以完成接下来的处理。

    解决方法很简单,换回net 3.5或者手动设置永不过期:

this.CookieCollection = HWR_Response.Cookies;            //防止cookie过期            foreach (Cookie Each_Cookie in this.CookieCollection)            {                if (Each_Cookie.Expires.Year < 2000)                {                    Each_Cookie.Expires = DateTime.MaxValue;                    CookieContainer.Add(Each_Cookie);                }            }
其中CookieCollection是供我们查看的response命令返回的cookies,CookieContainer是发送命令时所需要的cookie容器,也就是我们一直都需要用的所谓“Cookie”。

转载地址:http://trqws.baihongyu.com/

你可能感兴趣的文章
为什么你的App介绍写得像一坨翔?
查看>>
RTImageAssets插件--@3x可自动生成@2x图片
查看>>
iOS开发的一些奇巧淫技
查看>>
常浏览的博客和网站
查看>>
Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
查看>>
iOS在Xcode6中怎么创建OC category文件
查看>>
5、JavaWeb学习之基础篇—标签(自定义&JSTL)
查看>>
8、JavaWEB学习之基础篇—文件上传&下载
查看>>
reRender属性的使用
查看>>
href="javascript:void(0)"
查看>>
h:panelGrid、h:panelGroup标签学习
查看>>
f:facet标签 的用法
查看>>
<h:panelgroup>相当于span元素
查看>>
java中append()的方法
查看>>
必学高级SQL语句
查看>>
经典SQL语句大全
查看>>
Eclipse快捷键 10个最有用的快捷键
查看>>
log日志记录是什么
查看>>
<rich:modelPanel>标签的使用
查看>>
<h:commandLink>和<h:inputLink>的区别
查看>>