首頁 / CompScience / Programming / Languages / C# / Google Blogger版的誰來我家

Google Blogger版的誰來我家

ㄚ琪自從測試源自部落格.網誌人氣排名提升與行銷的不傳秘技之靈感之後,感覺有一點小成就,緊接著就繼續想說,無名雖然在台灣是個大咖,但是以世界的眼光來看,它還只是個眼中的小沙粒而已,要有寫ReviewME的機會,就要用英文的語言跟人交際周旋,所以ㄚ琪想到用Google的Follower,中文譯做追蹤,什麼是追蹤?你可以直接參閱http://www.google.com/support/blogger/bin/answer.py?hlrm=zh_tw&answer=104226這個連結,就可以得知,追蹤是用來部落格的忠實粉絲用的,當然這跟無名的誰來我家是有不同的用途,所以如果拿自動參訪機用在Google的追蹤功能上,也就無用武之地。

另外「追蹤者」這個小工具,Google說非常地實用,它可以拓展你部落格的讀者群,看到讀者群這三個字,你有沒看到$$$,你如果有Blogger的部落格,你可以不用嗎?當然一定要用囉,而且我鼓勵你用,因為Google也這樣鼓勵部落客要寫介紹文章,喔,我覺得介紹文章沒什麼好寫的,一定有很多人會寫,ㄚ琪寫了就變得很老梗了,但是要怎麼個自動追蹤,相信應該比較有人會有興趣$$$,當然自動追蹤是自動成為別人的粉絲,不是成為自己的粉絲,我們絕對不能強迫別人的選擇權,但是可以決定自己的選擇權,所以你可以自動地成為別人的粉絲,如果別人也喜歡你的部落格,相信他也會做你的粉絲,當然這只是根據無名的誰來我家的回訪經驗得知,ㄚ琪對這項論點上無法驗證,所以只好自己做實驗來看看囉!

依據之前的程式經驗,我繼續觀察Blogger的『成為網誌的追蹤者』的操作模式,很高興Blogger有一個下一個網誌,英文是Next Blog,只要你點擊下去,就可以隨機去拜訪別人的部落格,我猜是隨機啦,但是搞不好Blogger有在裡面作手腳也不一定,不過不管有沒有做都沒關係,因為我們只是利用這個功能來自動拜訪別人的部落格。

接下來就是比對部落格內容是否有追蹤者的widget,這一個滿好處理的,如果你拜訪的部落格有裝追蹤者的小工具,那麼接下來我們就可以找到他的blogid,當然ㄚ琪對C#的正規表示式,還真有點不熟,而且它的中譯叫規則運算式,更覺得奇怪,不過好在他有範例可以參考,所以比對出blogid只需花費個幾分鐘就可以克服。之後我們再根據這個blogid來追蹤他,當然也是是用Blogger的追蹤連結,用webbrowser完全模擬自動訂閱的技術不難,最後在一個有提交表單的頁面,有花一些心思在上面,可以參考C# webbrowser submitting form可以獲得解決,我把程式碼貼在下供參考:

假設你有這樣的表單原始碼:

<form id="searchform" method="post" action="index.php">
	<input type="text" class="search" name="s" id="s" value="" /> 
	<input type="submit" value="Search" class="button" />
</form>

你的C#程式碼可以這樣寫:

HtmlDocument objWbDoc = webbrowser1.Document;
HtmlElement hElEnter = objWbDoc.GetElementById("s");
hElEnter.Focus();

hElEnter.SetAttribute("value", "testing search"); //set the textbox value

foreach (HtmlElement vHEl in objWbDoc.Forms) //find the form element using their ID
{										
	 string formEl = vHEl.GetAttribute("id").ToString();
	 if (formEl.ToLower() == "form_id")
	 {
		  try
		  {
			   vHEl.Children[0].Focus();
			   SendKeys.SendWait("{ENTER}"); //invoke the submit button
		  }
		  catch (NotSupportedException ex)
		  {
			   vHEl.InvokeMember("submit");//invoke the submit button
		  }
	 }
}

參考使用套一套這可以用作你自己的程式碼,這樣你就可以做出自動成為別人粉絲的工具機了,相當好用!對了,其實測試期間,還是有發生javascript 發出alert事件,這當然得歸功Blogger的太free了,而這也是我奉勸各位如果要玩免費的部落格的話,還是玩Blogger好了,當然商鞅變法一定會搞到自己,沒錯,好用的Blogger在這裡,變成我程式的惡夢了,不過要關掉javascript的alert的功能,也不是沒有可能,後來找到Microsoft Web Browser Automation using C#,學到原來要用下面這樣的程式碼:

private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)

       {

           if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)

           {

               HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];

               HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");

               IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;

               string alertBlocker = "window.alert = function () { }";

               element.text = alertBlocker;

               head.AppendChild(scriptEl);

           }

       }

不過你如果直接貼,會發現IHTMLScriptElement會有反白的錯誤出來:

2011-02-08_112144

搞了一陣子還知道原來這個類別是要引用COM中的Microsoft HTML object library,才知道原來C#除了命名空間之外,還有參考可以用,使用的方法,在C# 10就是在專案那邊選加入參考,就有一堆參考讓你選用,當然我們的標的是Microsoft HTML object library,因為這一段程式碼,可以克服alert的事件發生,太好了,可繼續自動拜訪了!

後續,還是會有個事件發生,但是ㄚ琪還在研究中,事件的圖片先貼出來,等有解了再公佈答案:

2011-02-08_130214

Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top