歡迎跟我連絡

本頁最下方有Web MSN可以直接跟我交談喔!
免安裝程式...哈哈 歡迎聊天

2008年8月9日 星期六

使用WebBrower透過Google自動查詢

今天來利用.Net Framework提供的WebBrower,來玩點小遊戲
開啟一個新專案,拉一個webBrowser1佈建到你的Form中,在加一個Button在你的Form中

然後在public partial class Form1加入這段程式碼:

private bool ButtonClick=false; //避免程式一直查詢檢查用變數
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Url = new Uri("http://www.google.com"); //設定Google網址
ButtonClick = true;
}

//網也完全載入後觸發此DocumentCompleted Event
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (ButtonClick)
{
HtmlDocument myDoc = webBrowser1.Document;

//關鍵所在,必須知道Search textbox的name是"q"(利用IE->檢視-> 原始檔可以慢慢找到)
HtmlElement myTextBox = myDoc.GetElementById("q"); //找到Search textbox
//關鍵所在,必須知道Google搜尋 Button的name是"btnG"(利用IE->檢視-> 原始檔可以慢慢找到)
HtmlElement myButton = myDoc.GetElementById("btnG"); //找到Google搜尋 Button

object myObj = "Embedded";
myTextBox.InnerText = "Embedded"; //在Search textbox填入查詢字眼
myButton.InvokeMember("click", null); //按下Google搜尋 Button
ButtonClick = false;
}
}


這樣就可以做到自動查詢了...


延伸想法:
如此一來,是不是可以透過這個方式直接登錄一些網站,不用自己keyin帳號密碼呢?...哈哈

7 個回應:

匿名 提到...

版主大大可以請教一下,如果我單純的是想做一個網頁使用textbox修改我這個網頁的原始檔,並且發佈於webbrowser上我該如何做呢?

雨季的尋羊冒險 提到...

對不起,我實在有點無法了解你的需求是啥?
能說明詳細一點嗎?

匿名 提到...

大大您好,我的意思是說我若想自己做一個網頁,但是我想用VC#裡的textbox修改網頁的原始檔後發佈於webbrowser上我該如何攥寫呢?

雨季的尋羊冒險 提到...

你好,可否留Email比較方便回覆你,因為你所說的需求與此篇文章所要展示的功能不盡相同.基本上你的需求,除非你有網站的發佈權,不然就像這個部落格的修改方式匯入完整的XML,不然是否有網站這樣做過???

匿名 提到...

大大您好我的mail是c2991326@gmail.com感謝回覆!

雨季的尋羊冒險 提到...

Hi! Good-day!
不知道如何稱呼你,所以就稱呼你"Mr C".
其實我這個網頁"使用WebBrower透過Google自動查詢"要Demo的技術是類似.
用程式自動註冊或攻擊某個網頁的技術,與你的需求比較沒有關係.

至於你的需求,我想你想要用Application(C#),去修改網頁然後用WebBrower呈現,
我想我大概會這樣做...
(1)我必須知道那個網頁至於何處且我有修改並發布的權限.
(2)User 透過 Application UI 修改內容後.
(3)Application 讀取原始檔到記憶體,將User修改的部分修改記憶體內相對的地方.
(4)Application 將記憶體內的檔案寫回去.
(5)Application 透過WebBrower 去取該網頁.

應該就這樣吧.
我想關鍵技術會是在(3)解析網頁內容.
網頁如果是
(1)HTML : 可以參考我的 Blog "Regular Expression " 利用此方式解析得到你要修改的位置.(方法太多不勝枚舉)
(2)XML: 可以參考我的 Blog "序列化小技巧" 利用此方式解析得到你要修改的位置.(方法太多不勝枚舉)
當然啦!以上只是建議及可行的方式,我想一定有更好的方式,所以這就是程式設計迷人的地方.
希望對你有所幫助...

隨時參觀 "雨季的尋羊冒險..."

匿名 提到...

謝謝你無私的回覆,我的想法很單純,其實我的網頁只是內部自己寫的html檔案;目的是想要使用C#更動網頁的內容且能直接由C#視窗更改而不需要以記事本重新編譯,然後再給webbrowser讀出;不過大大您提供的方法似乎更廣泛在此還是感謝您的回覆!感恩!

MSN狀態(我在線上時,可以跟我交談喔)