利用c#和webbrowser輕鬆打造註冊機和回帖機

來源:互聯網
上載者:User

步驟如下:

第一步:擷取網頁
調用Webbrowser 的Navigate系列函數。等待網頁裝載完成,得到document對象。

在調用 webBrowser.Document 之前,請確保 Webbrowser 網頁裝載完成,可以通過Webbrowser的DocumentCompleted事件進行監視。

小技巧

先指定一個變數:
IsCompleted
在調用Webbrowser 的Navigate,Refresh系列函數之前,將IsCompleted設為false。
在DocumentCompleted事件中,如果 ReadyState 為 WebBrowserReadyState.Complete,則設IsCompleted為true.

調用webBrowser.Document之前對IsCompleted進行判斷。如果不為true,則延時迴圈等待,直到IsCompleted被設為true.

第二步:設定網頁元素資料

確保得到document對象之後,通過 GetElementById 擷取網頁元素,如:

HtmlElement user = webBrowser.Document.GetElementById("user");
HtmlElement password = webBrowser.Document.GetElementById("password");

設定網頁元素值:

user.InnerText = "myname";
password.InnerText = "123456";

小技巧
作用 SetAttribute 設定下拉框,複選框,多選框資料

下拉框:
secret.SetAttribute("value", "question1"); 
複選框
rememberme.SetAttribute("Checked", "True");
多選框
cookietime.SetAttribute("checked", "checked");

當然,在SetAttribute 之前,也可以用GetAttribute取相關的屬性先進行判斷,再根椐需要進行設定。

第三步:提交網頁資料

先取提交的按鈕對象。
HtmlElement submit = webBrowser.Document.GetElementById("submit");

進行提交
submit.InvokeMember("click");

就是怎麼簡單。整個過程也就是 http get和post的過程。

當然也可以用低級點的WebRequest,還有更低級的socket來做,不過,現在的眾多頁面都有這樣,那樣的變形驗證碼,如果你和我一樣,搞不定驗證碼識別,又貪圖快點完成任務,上面的辦法絕對是又快,又好。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.