2010年9月3日 星期五

模擬人為使用搜尋引擎

C# 中的 WebBrowser 的控制項,能做到模擬人為使用搜尋引擎,這可用在網頁探勘或者一些相關的研究上做為一些參考。接下來就解說如何實作這功能的步驟。

環境: win 7、 Visual Studio 2010

首先利用到 WebBrowser 控制項,可以觀察目前步驟為何,再用四個 Button 將上網搜尋的步驟區分出來,也可將這四步驟合為一。可以將上述所說到的控制項設計程如下圖的視窗程式。而這四個步驟的詳細說明如下:

1 - Button1:

private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Url = new Uri("http://www.google.com.tw/");
}
將網址的 Url 設成 http://www.google.com.tw/,當按下 Button1 時,WebBrowser1 會讀取到此網址之中,如下圖所示。

2 - Button2:

private void button2_Click(object sender, EventArgs e)
{
HtmlElementCollection HEC =
webBrowser1.Document.GetElementsByTagName("input");

foreach (HtmlElement HE in HEC)
{
if (HE.GetAttribute("title") == "Google 搜尋")
HE.SetAttribute("value", "C語言");
}
}
找尋網頁中 Tag Name 為 input 的控制項,將控制項 title 為 "Google 搜尋" 的 value 改為 "C語言",按下 Button2 後,就會如下圖所示,打上關鍵字。

3 - Button3:

private void button3_Click(object sender, EventArgs e)
{
HtmlElementCollection HEC =
webBrowser1.Document.GetElementsByTagName("input");

foreach (HtmlElement HE in HEC)
{
if (HE.GetAttribute("value") == "Google 搜尋")
HE.InvokeMember("Click");
}
}
再找尋網頁中 Tag Name 為 input 的控制項,將控制項 value 為 "Google 搜尋" 做人為的按下搜尋動作,如下圖所示,就會跳到搜尋結果頁面。

4 - Button4:

private void button4_Click(object sender, EventArgs e)
{
HtmlElementCollection HEC =
webBrowser1.Document.GetElementsByTagName("a");

foreach (HtmlElement HE in HEC)
{
if (HE.GetAttribute("href")
== "http://using-c.blogspot.com/")
HE.InvokeMember("Click");
}
}
最後,在搜尋結果頁面找 Tag Name 為 a 的 href 為 http://using-c.blogspot.com/ (此網址是我跟老師合作的一個網誌),做點擊連結的動作,如下圖所示,就會到我的網誌啦。這或許可以幫助你的網誌流量增加或者做其他的事情,但我覺得還是不要為妙,因為如果被 google 發現,代價可是很重的,畢竟這是一種作弊的行為。

回目錄
回首頁

沒有留言 :

張貼留言

Related Posts Plugin for WordPress, Blogger...