【脚本共享】CSDN版主批量删帖工具。

如果你不是版主,那么这个工具对你作用不大,请绕路。

使用方法:
1、复制如下HTML代码到记事本中;
2、保存文件,编码为“UTF8”,扩展名为“.HTA”;
3、在IE中用版主身份登录;
4、双击文件运行该程序;
5、将要删除的帖子链接复制到"需要删除的链接:"文本框中,以回车分隔;
6、点击“开始删除”。
  1. <html>
  2. <head>
  3. <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"/>
  4. <title>CSDN批量删帖--清洁工2008版</title>
  5. </head>
  6. <body>
  7. <scripttype="text/javascript">
  8. /*--
  9. 设计:ZswangY37
  10. 日期:2008年10月18日
  11. 博客:http://blog.csdn.net/zswang
  12. --*/
  13. $=document.getElementById;
  14. varForAppending=8;//追加模式
  15. varForReading=1;//读取模式
  16. varForWriting=2;//写入模式
  17. ///<summary>
  18. ///将字符串追加到文本文件最后
  19. ///</summary>
  20. ///<paramname="filename">文件名</param>
  21. ///<paramname="text">所要追加的字符串</param>
  22. ///<returns>返回追加是否成功</returns>
  23. functionAppendFileText(filename,text)
  24. {
  25. varfso=newActiveXObject("Scripting.FileSystemObject");//文件系统
  26. varistream=fso.OpenTextFile(filename,ForAppending,true);
  27. if(!istream)return;
  28. try{
  29. istream.write(text);
  30. istream.Close();
  31. returntrue;
  32. }catch(e){
  33. returnfalse;
  34. }finally{
  35. istream=null;
  36. fso=null;
  37. }
  38. }
  39. ///<summary>
  40. ///追加日志
  41. ///</summary>
  42. ///<paramname="text">日志文本</param>
  43. functionAppendLog(text){
  44. $("TextareaLog").value+=text;
  45. AppendFileText("log.txt",text);
  46. }
  47. ///<summary>
  48. ///分析帖子内容
  49. ///</summary>
  50. ///<paramname="topicText">帖子HTML文本</param>
  51. ///<returns>返回帖子信息</returns>
  52. functionTopicInfo(topicText){
  53. topicTexttopicText=topicText.replace(//r/n/g,"");
  54. varre=//<span/s*csdnid=/"isCheckOut/"/s*class=/"color_red/"/>(.*?)/<//span/>/g;
  55. if(re.exec(topicText))this.isCheckOut=RegExp.$1;//是否已经结贴
  56. varre=//<meta/s*csdnid=/"sectionId/"/s*content=/"(.*?)/"(/s*//)*/>/g;
  57. if(re.exec(topicText))this.forumId=RegExp.$1;//版块ID
  58. varre=//<meta/s*id=/"topicViewUrl/"/s*csdnid=/"topicViewUrl/"/s*content=/"(.*?)/"(/s*//)*/>/g;
  59. if(re.exec(topicText))this.topicUrl=RegExp.$1;//帖子链接
  60. varre=/http:topic.csdn.net//u///d+///d+//([0-9a-z/-]+).html/g;
  61. if(re.exec(topicText))this.topicId=RegExp.$1;//帖子链接
  62. varre=//<meta/s*csdnid=/"description/"/s*content=/"(.*?)/"/s*name=/"description/"(/s*//)*/>/g;
  63. if(re.exec(topicText))this.description=RegExp.$1;//帖子主题
  64. varre=//<var/s*id=/"point/"/s*csdnid=/"topicPoint/"/>(.*?)/<//var/>/g;
  65. if(re.exec(topicText))this.point=RegExp.$1;//帖子点数
  66. varre=//<var/s*csdnid=/"replyCount/">(.*?)/<//var/>/g;
  67. if(re.exec(topicText))this.replyCount=RegExp.$1;//回复次数
  68. varre=//<a/s*href=/"http/:hi.csdn.net//(.*?)/"/s*.*?/>/g;
  69. if(re.exec(topicText))this.username=RegExp.$1;//楼主
  70. varre=//<var/s*csdnid=/"topicPostDate/">(.*?)/<//var/>/g;
  71. if(re.exec(topicText))this.topicPostDate=RegExp.$1;//发帖时间
  72. }
  73. ///<summary>
  74. ///获取链接的文本内容
  75. ///</summary>
  76. ///<paramname="url">页面链接地址</param>
  77. ///<returns>返回页面HTML文本</returns>
  78. functionGetUrlText(url){
  79. varxmlhttp=newActiveXObject("Microsoft.XMLHTTP");
  80. try{
  81. xmlhttp.open("get",url,false);
  82. xmlhttp.send();
  83. returnxmlhttp.responseText;
  84. }catch(e){
  85. return"";
  86. }finally{
  87. xmlhttp=null;
  88. }
  89. }
  90. ///<summary>
  91. ///分析删除提交信息
  92. ///</summary>
  93. ///<paramname="htmlText">页面文本</param>
  94. ///<returns>返回删除提交信息对象</returns>
  95. functionDeleteInfo(htmlText){
  96. htmlTexthtmlText=htmlText.replace(//r/n/g,"");
  97. varre=/<input/s+type=/"hidden/"/s+name=/"__VIEWSTATE/"/s+id=/"__VIEWSTATE/"/s+value=/"(.*?)/"/s+//>/g;
  98. if(re.exec(htmlText))this.viewState=RegExp.$1;
  99. varre=/<input/s+type=/"hidden/"/s+name=/"__EVENTVALIDATION/"/s+id=/"__EVENTVALIDATION/"/s+value=/"(.*?)/"/s+//>/g;
  100. if(re.exec(htmlText))this.eventValidation=RegExp.$1;
  101. }
  102. ///<summary>
  103. ///分析提交返回信息
  104. ///</summary>
  105. ///<paramname="htmlText">页面文本</param>
  106. ///<returns>返回提交返回信息对象</returns>
  107. functionResultInfo(htmlText){
  108. htmlTexthtmlText=htmlText.replace(//r/n/g,"");
  109. varre=/<div/s+class="csdnTipContent">/s*<span/s+class="(.*?)">(.*?)<//span>/s*<//div>/ig;
  110. if(re.exec(htmlText)){
  111. this.state=RegExp.$1;
  112. this.info=RegExp.$2;
  113. }
  114. }
  115. ///<summary>
  116. ///提交删帖请求
  117. ///</summary>
  118. ///<paramname="url">处理删帖的链接</param>
  119. ///<paramname="deleteInfo">删帖相关参数</param>
  120. ///<returns>返回提交页面文本</returns>
  121. functionPostRequest(url,deleteInfo)
  122. {
  123. vardata="__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE="+encodeURIComponent(deleteInfo.viewState)+
  124. "&reasonGroup=2&ctl00%24ContentPlaceHolder1%24tb_Reason="+encodeURIComponent($("TextReason").value)+
  125. "&ctl00%24ContentPlaceHolder1%24bt_Submit=%E7%A1%AE%E5%AE%9A&"+
  126. "__EVENTVALIDATION="+encodeURIComponent(deleteInfo.eventValidation);
  127. varxmlhttp=newActiveXObject("Microsoft.XMLHTTP");
  128. try{
  129. xmlhttp.open("Post",url,false);
  130. xmlhttp.setRequestHeader("Referer",url);
  131. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  132. xmlhttp.setRequestHeader("Accept-Encoding","gzip,deflate");
  133. xmlhttp.setRequestHeader("Content-Length",data.length);
  134. xmlhttp.send(data);
  135. returnxmlhttp.responseText;
  136. }catch(e){
  137. returne.message;
  138. }finally{
  139. xmlhttp=null;
  140. }
  141. }
  142. functionButtonStartClick(){
  143. varurls=$("TextareaUrls").value.split(//r/n/);//论坛列表
  144. for(vari=0;i<urls.length;i++){
  145. vartopicInfo=newTopicInfo(GetUrlText(urls[i]));
  146. if(typeoftopicInfo.forumId=="string")
  147. {
  148. vardeleteUrl="http://forum.csdn.net/PointForum/Manage/DeleteTopic.aspx?forumId="+
  149. topicInfo.forumId+"&topicId="+topicInfo.topicId+"/r/n";
  150. vardeleteInfo=newDeleteInfo(GetUrlText(deleteUrl));
  151. if(typeofdeleteInfo.viewState=="string")
  152. {
  153. varresultInfo=newResultInfo(PostRequest(deleteUrl,deleteInfo));
  154. AppendLog(topicInfo.topicUrl+"--("+resultInfo.info+")/r/n");
  155. }
  156. }
  157. else$("TextareaLog").value+=urls[i]+"--(无效的帖子)/r/n";
  158. }
  159. }
  160. functionButtonAnalyseClick(){
  161. vartext=$("TextareaText").value;
  162. texttext=text.replace(//r/n/g,"");
  163. varmatchs=text.match(/http:topic.csdn.net//u///d+///d+//[0-9a-z/-]+.html/g);
  164. for(vari=0;matchs&&i<matchs.length;i++){
  165. $("TextareaUrls").value+=matchs[i]+"/r/n";
  166. }
  167. }
  168. </script>
  169. <tablestyle="width:100%;height:100%;">
  170. <trstyle="height:10%">
  171. <td>
  172. <div>
  173. 原因:<inputtype="input"value="非法帖子"id="TextReason"/>
  174. <inputtype="button"value="分析链接"onclick="ButtonAnalyseClick();"id="ButtonAnalyse"/>
  175. <inputtype="button"value="开始删除"onclick="ButtonStartClick();"id="ButtonStart"/>
  176. </div>
  177. <div>
  178. </div>
  179. </td>
  180. </tr>
  181. <tr>
  182. <td>
  183. 原始文本:
  184. <textareaid="TextareaText"style="width:100%;height:100%"></textarea>
  185. </td>
  186. </tr>
  187. <tr>
  188. <td>
  189. 需要删除的链接:
  190. <textareaid="TextareaUrls"style="width:100%;height:100%"></textarea>
  191. </td>
  192. </tr>
  193. <tr>
  194. <td>
  195. 处理的日志:
  196. <textareaid="TextareaLog"style="width:100%;height:100%"></textarea>
  197. </td>
  198. </tr>
  199. </table>
  200. </body>
  201. </html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值