KingDZ 变菜鸟,每日一个C#小实例之---C#自动填表

这个小实例的作用是用来自动填表,当然是WinForm填写网站上面的表单了,我在这里只是提供一种思想,哈哈,大伙不要用这个来开发非法的软件哦。例如,自动注册,批量评论什么的啊。

但是对于某些看着不爽得网站,哈哈,偶不管你,你自己玩吧。

首先找到百度大哥的登陆界面地址  http://passport.baidu.com/?login&tpl=mn

好了准备工作完成。

1

注意红框框的地方,这个地方可以填写账号和密码,我们恰恰需要操作的就是这里。

右键查看源文件,我们可以得到如下的代码片段

  <td width="50" class="f14">帐 号:</td>
<td width="156"><input type="text" name="username" id="username" value="" title="用户名/验证邮箱" onfocus="checkInput(this)" onblur="restore(this)" onChange="chechUserOld('username')" class="ip"/></td>
    <td width="50" class="f14" valign="top">密 码:</td>
    <td width="156"><input type="password" id="normModPsp" value="" class="ip"/></td>
筛选出对我们有用的信息来

<input type="text" name="username" id="username" value="" />

<input type="password" id="normModPsp" value="" />

哈哈,就是这两个标签了,好了,准备下手了。

为了提高效率,当然网页只下载一次最好了啊。声明一个全局的变量。

HtmlDocument hdoc;

当网页加载完成之后,给这个变量赋值。

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    hdoc = webBrowser1.Document;
}

哈哈,好了,为下面做准备吧,

//帮助方法根据name获得元素
public HtmlElement GetElement_Name(string name)
{
    HtmlElement e = hdoc.All[name];
    return e;
}
//根据Id获取元素
public HtmlElement GetElement_Id(string id)
{
    HtmlElement e = hdoc.GetElementById(id);
    return e;
}

两个方法,为下面得到标签做准备。大家看看是不是和JS好像啊

 

private void btnInput_Click(object sender, EventArgs e)
{
    HtmlElement name = GetElement_Id("username");
    HtmlElement pwd = GetElement_Id("normModPsp");

    name.SetAttribute("value","Kingdz");
    pwd.SetAttribute("value","Kingdz");

}

单击按钮事件,哈哈,填上数据了。

 

12

下面实现自动登陆就好了。

<input type="submit" value=" 登录 "/>,哈哈,这个比较郁闷了,没有Name和ID,哇塞,我找了Form以后,还是没有

<form action="https://passport.baidu.com/?login" method="POST" onSubmit="return checkForm(this);">

这可怎么办呢?没事,曲线救国吗?哈哈。

//根据Type获取元素
public HtmlElement GetElement_Type(string type)
{
    HtmlElement e=null;
    HtmlElementCollection elements = hdoc.GetElementsByTagName("input");
    foreach (HtmlElement element in elements)
    {
        if (element.GetAttribute("type") == type)
        {
            e = element;
        }
    }
    return e;
}

 

private void btnLogin_Click(object sender, EventArgs e)
{
    GetElement_Type("submit").InvokeMember("click");

}

好了,这么就搞定了,提交一把,嘻嘻,没有该用户的。

21

哇塞,要验证码,哎,这个就郁闷了,三言两语说不清楚了,只能以后再给大家慢慢解释。哈哈,自动注册机最重要的就是验证码的分析处理了,难度系数,好几星呢。

当然验证码也是可以解析出来的。这里就不能深入的去研究这个了么哈哈。欢迎大家给给我一起研究这类数据的操作。

关于WebBrowser控件的使用,我想园子里面的这个哥们已经研究的很透彻了,哈哈

http://www.cnblogs.com/peterzb/archive/2009/07/12/1521787.html

当然呢,微软还是权威啊

http://msdn.microsoft.com/zh-cn/library/w290k23d%28VS.80%29.aspx

更多更好的用法,欢迎你去百度,Google,Bing。哈哈,支持不在于一点,在于我们从知识不断的去发现新鲜的东东。哦KingDZ

posted @ 2011-09-19 18:00  KingDZ  阅读(5582)  评论(14编辑  收藏  举报