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

来源:互联网 发布:怎么样测试淘宝标题 编辑:程序博客网 时间:2024/05/19 13:22

这个小实例的作用是用来自动填表,当然是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

0 0
原创粉丝点击