自动封人机VB代码

didadida
楼主 (未名空间)

Visual Studio 里新建一个VB的Windows Form Application

在form里加一个Web Browser 控件,和一个button
这两个控件都使用了缺省名字

在D盘保存封禁ID的名单,每个ID一行
假设文件取名IDs.txt

运行程序,登录完成后,点击那个唯一的button

代码
(需要把WebBrowser1.Navigate("http://www.mitbbs.com/mitbbs_add_deny_user.php?board=Detective&op_flag=0") 这一行里的Detective改成Military)

Imports VB = Microsoft.VisualBasic
Public Class Form1
Dim list_id As ArrayList = New ArrayList()

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

WebBrowser1.ScriptErrorsSuppressed = True
WebBrowser1.Navigate("www.mitbbs.com")

Dim FILE_NAME As String = "d:IDs.txt"

If System.IO.File.Exists(FILE_NAME) = True Then

Dim objReader As New System.IO.StreamReader(FILE_NAME)

Do While objReader.Peek() <> -1
list_id.Add(Trim(objReader.ReadLine()))

Loop

Else

MessageBox.Show("File Does Not Exist")

End If

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click

Dim id As String
Dim iHTMLCol As HtmlElementCollection
Dim iHTMLEle As HtmlElement

For Each id In list_id
WebBrowser1.Navigate("http://www.mitbbs.com/mitbbs_add_deny_user.php?board=Detective&op_flag=0")

Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
Loop

iHTMLCol = WebBrowser1.Document.GetElementsByTagName("input")
For Each iHTMLEle In iHTMLCol
Debug.WriteLine(iHTMLEle.Name)
Select Case iHTMLEle.Name
Case "userid"
iHTMLEle.SetAttribute("value", id)
Case "dt"
iHTMLEle.SetAttribute("value", "14")
Case "exp"
iHTMLEle.SetAttribute("value", "贴图机并/或威胁版主")


End Select

Next

For Each curElement As HtmlElement In iHTMLCol
If curElement.GetAttribute("type").Equals("submit") Then
curElement.InvokeMember("click")
End If
Next

Dim start As Single
start = VB.Timer()
Do While VB.Timer() < start + 0.5

System.Windows.Forms.Application.DoEvents()
Loop

Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
Loop

Next

MsgBox("All Done")

End Sub

End Class

alexsung

封禁ID的名单怎么搞?手动添加?
有没有识别马甲的程序?
didadida

悉尼客提供的http://www.mitbbs.com/article_t/sysop/31359387.html

当然,自动根据图挑出来也不是很难
每10分钟扫描最新的五十篇贴子,从中找那几个图link

【 在 alexsung (Keep your feet on the ground.) 的大作中提到: 】
: 封禁ID的名单怎么搞?手动添加?
: 有没有识别马甲的程序?

cynic

我打算用https://anti-captcha.com的服务,很便宜,然后自动登录,每天封人一遍。关键是我没太多时间做这个事情。这个事情如果要做,那么还是要花一些时间的。比如如果识别失败了得通知我,那还得要一个secure smtp的api。然后还要删帖等等,虽然每个都不难,但是加起来都是时间。这年头做没钱的编程没动力。

你看,工作流程如下

1. 自动登录
a)登录成功 ->2
b)登录失败 -> 发信通知,手动输入图片识别码

2. 封人
- 不需要考虑是否已经被封,反正每天封一遍
- 新被封的id加入到封人名单

3. 扫描帖子
- RSS功能已经作废,需要自己去看怎么扫描最近的帖子

4. 检测用户名
- 用户名属于随机注册的(可以借用判断password强弱的库,随机注册的用户名属于
password strength高的) -> alert

5. 检查帖子的贴图数量
- 超过x个图的 -> 2 + 删帖
- 图片URL在blacklist里的 -> 2 + 删帖

写+调试+测试+改进,这是稳稳妥妥的十几个小时的工作量。如果我去bill client,我会bill至少3天,不多于5天的工作量。