KingDZ 变菜鸟,每日一个C#小实例之---C#自动填表
这个小实例的作用是用来自动填表,当然是WinForm填写网站上面的表单了,我在这里只是提供一种思想,哈哈,大伙不要用这个来开发非法的软件哦。例如,自动注册,批量评论什么的啊。
但是对于某些看着不爽得网站,哈哈,偶不管你,你自己玩吧。
首先找到百度大哥的登陆界面地址 http://passport.baidu.com/?login&tpl=mn
好了准备工作完成。
注意红框框的地方,这个地方可以填写账号和密码,我们恰恰需要操作的就是这里。
右键查看源文件,我们可以得到如下的代码片段
<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"); }
单击按钮事件,哈哈,填上数据了。
下面实现自动登陆就好了。
<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"); }
好了,这么就搞定了,提交一把,嘻嘻,没有该用户的。
哇塞,要验证码,哎,这个就郁闷了,三言两语说不清楚了,只能以后再给大家慢慢解释。哈哈,自动注册机最重要的就是验证码的分析处理了,难度系数,好几星呢。
当然验证码也是可以解析出来的。这里就不能深入的去研究这个了么哈哈。欢迎大家给给我一起研究这类数据的操作。
关于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
作者: KingDZ 发表于 2011-09-19 18:00 原文链接
最新新闻:
· 传谷歌已正式推出谷歌钱包服务(2011-09-19 22:51)
· 微软应用开发者可分成70%收入(2011-09-19 22:49)
· Windows 8将支持跨平台对战 PC与主机玩家终成战友(2011-09-19 22:47)
· Facebook副总:推出订阅服务与对手无关(2011-09-19 22:24)
· NEC拟大力开拓海外云计算业务(2011-09-19 22:05)