這個(gè)小實(shí)例的作用是用來(lái)自動(dòng)填表,當(dāng)然是WinForm填寫(xiě)網(wǎng)站上面的表單了,我在這里只是提供一種思想,哈哈,大伙不要用這個(gè)來(lái)開(kāi)發(fā)非法的軟件哦。例如,自動(dòng)注冊(cè),批量評(píng)論什么的啊。 但是對(duì)于某些看著不爽得網(wǎng)站,哈哈,偶不管你,你自己玩吧。 首先找到百度大哥的登陸界面地址 http://passport.baidu.com/?login&tpl=mn 好了準(zhǔn)備工作完成。 注意紅框框的地方,這個(gè)地方可以填寫(xiě)賬號(hào)和密碼,我們恰恰需要操作的就是這里。 右鍵查看源文件,我們可以得到如下的代碼片段 <td width="50" class="f14">帳 號(hào):</td> <input type="text" name="username" id="username" value="" /> <input type="password" id="normModPsp" value="" /> 哈哈,就是這兩個(gè)標(biāo)簽了,好了,準(zhǔn)備下手了。 為了提高效率,當(dāng)然網(wǎng)頁(yè)只下載一次最好了啊。聲明一個(gè)全局的變量。 HtmlDocument hdoc;
當(dāng)網(wǎng)頁(yè)加載完成之后,給這個(gè)變量賦值。 private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { hdoc = webBrowser1.Document; } 哈哈,好了,為下面做準(zhǔn)備吧, //幫助方法根據(jù)name獲得元素 public HtmlElement GetElement_Name(string name) { HtmlElement e = hdoc.All[name]; return e; } //根據(jù)Id獲取元素 public HtmlElement GetElement_Id(string id) { HtmlElement e = hdoc.GetElementById(id); return e; } 兩個(gè)方法,為下面得到標(biāo)簽做準(zhǔn)備。大家看看是不是和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"); } 單擊按鈕事件,哈哈,填上數(shù)據(jù)了。
下面實(shí)現(xiàn)自動(dòng)登陸就好了。 <input type="submit" value=" 登錄 "/>,哈哈,這個(gè)比較郁悶了,沒(méi)有Name和ID,哇塞,我找了Form以后,還是沒(méi)有 <form action=" method="POST" onSubmit="return checkForm(this);"> 這可怎么辦呢?沒(méi)事,曲線救國(guó)嗎?哈哈。 //根據(jù)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"); } 好了,這么就搞定了,提交一把,嘻嘻,沒(méi)有該用戶(hù)的。 哇塞,要驗(yàn)證碼,哎,這個(gè)就郁悶了,三言?xún)烧Z(yǔ)說(shuō)不清楚了,只能以后再給大家慢慢解釋。哈哈,自動(dòng)注冊(cè)機(jī)最重要的就是驗(yàn)證碼的分析處理了,難度系數(shù),好幾星呢。 當(dāng)然驗(yàn)證碼也是可以解析出來(lái)的。這里就不能深入的去研究這個(gè)了么哈哈。歡迎大家給給我一起研究這類(lèi)數(shù)據(jù)的操作。 關(guān)于WebBrowser控件的使用,我想園子里面的這個(gè)哥們已經(jīng)研究的很透徹了,哈哈 http://www.cnblogs.com/peterzb/archive/2009/07/12/1521787.html 當(dāng)然呢,微軟還是權(quán)威啊 http://msdn.microsoft.com/zh-cn/library/w290k23d%28VS.80%29.aspx 更多更好的用法,歡迎你去百度,Google,Bing。哈哈,支持不在于一點(diǎn),在于我們從知識(shí)不斷的去發(fā)現(xiàn)新鮮的東東。哦KingDZ這個(gè)小實(shí)例的作用是用來(lái)自動(dòng)填表,當(dāng)然是WinForm填寫(xiě)網(wǎng)站上面的表單了,我在這里只是提供一種思想,哈哈,大伙不要用這個(gè)來(lái)開(kāi)發(fā)非法的軟件哦。例如,自動(dòng)注冊(cè),批量評(píng)論什么的啊。 但是對(duì)于某些看著不爽得網(wǎng)站,哈哈,偶不管你,你自己玩吧。 首先找到百度大哥的登陸界面地址 http://passport.baidu.com/?login&tpl=mn 好了準(zhǔn)備工作完成。 注意紅框框的地方,這個(gè)地方可以填寫(xiě)賬號(hào)和密碼,我們恰恰需要操作的就是這里。 右鍵查看源文件,我們可以得到如下的代碼片段 <td width="50" class="f14">帳 號(hào):</td> <input type="text" name="username" id="username" value="" /> <input type="password" id="normModPsp" value="" /> 哈哈,就是這兩個(gè)標(biāo)簽了,好了,準(zhǔn)備下手了。 為了提高效率,當(dāng)然網(wǎng)頁(yè)只下載一次最好了啊。聲明一個(gè)全局的變量。 HtmlDocument hdoc;
當(dāng)網(wǎng)頁(yè)加載完成之后,給這個(gè)變量賦值。 private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { hdoc = webBrowser1.Document; } 哈哈,好了,為下面做準(zhǔn)備吧, //幫助方法根據(jù)name獲得元素 public HtmlElement GetElement_Name(string name) { HtmlElement e = hdoc.All[name]; return e; } //根據(jù)Id獲取元素 public HtmlElement GetElement_Id(string id) { HtmlElement e = hdoc.GetElementById(id); return e; } 兩個(gè)方法,為下面得到標(biāo)簽做準(zhǔn)備。大家看看是不是和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"); } 單擊按鈕事件,哈哈,填上數(shù)據(jù)了。
下面實(shí)現(xiàn)自動(dòng)登陸就好了。 <input type="submit" value=" 登錄 "/>,哈哈,這個(gè)比較郁悶了,沒(méi)有Name和ID,哇塞,我找了Form以后,還是沒(méi)有 <form action=" method="POST" onSubmit="return checkForm(this);"> 這可怎么辦呢?沒(méi)事,曲線救國(guó)嗎?哈哈。 //根據(jù)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"); } 好了,這么就搞定了,提交一把,嘻嘻,沒(méi)有該用戶(hù)的。 哇塞,要驗(yàn)證碼,哎,這個(gè)就郁悶了,三言?xún)烧Z(yǔ)說(shuō)不清楚了,只能以后再給大家慢慢解釋。哈哈,自動(dòng)注冊(cè)機(jī)最重要的就是驗(yàn)證碼的分析處理了,難度系數(shù),好幾星呢。 當(dāng)然驗(yàn)證碼也是可以解析出來(lái)的。這里就不能深入的去研究這個(gè)了么哈哈。歡迎大家給給我一起研究這類(lèi)數(shù)據(jù)的操作。 關(guān)于WebBrowser控件的使用,我想園子里面的這個(gè)哥們已經(jīng)研究的很透徹了,哈哈 http://www.cnblogs.com/peterzb/archive/2009/07/12/1521787.html 當(dāng)然呢,微軟還是權(quán)威啊 http://msdn.microsoft.com/zh-cn/library/w290k23d%28VS.80%29.aspx 更多更好的用法,歡迎你去百度,Google,Bing。哈哈,支持不在于一點(diǎn),在于我們從知識(shí)不斷的去發(fā)現(xiàn)新鮮的東東。哦KingDZ |
|
來(lái)自: 我也是個(gè)傻瓜 > 《編程基礎(chǔ)》