2012-01-26 51 views
7

有一個網站是使用ColdFusion創建的(不知道這是否重要)。我需要與這個網站互動。我需要做的主要事情是導航到不同的頁面並單擊按鈕。與C#中的網頁交互#

我想出了兩條關於如何做到這一點的想法。首先是使用WebBrowser控件。有了這個,我當然可以導航頁面,並點擊按鈕(根據This)。

另一種方式是直接與html進行交互。不確定如何做到這一點,但我假設我可以點擊按鈕或使用HTML請求與頁面進行交互。

有沒有人有建議哪種方式更好?有沒有更好的方法,我沒有想到?

+1

正如其他人在下面發佈的,在.NET中尋找網站的正常方式是使用HttpWebRequest。您可以使用代碼輕鬆導航網站併發布發佈/獲取請求以模擬交互(按鈕推送)。您應該使用Fiddler(免費代理)來記錄流程,這將允許您查看與網站互動的整個過程,以便您可以使用代碼重新創建它。 HtmlAgilityPack是解析HTML的好工具,可能需要根據您的需求進行分析。 – Zachary

+2

嘗試[WatiN](http://watin.org/)。 – MUS

回答

7

我會用Html AgilityPack解析html,然後用HttpWebRequest來適當的POST和GET。

雖然有可能使用WebBrowser控件來模擬點擊和導航你會得到更多的控制與HTML AgilityPack和HttpWebRequest的關於什麼被髮送

3

你考慮SeleniumWebDriver API非常好,並允許在網站自動化方面做很多事情。

+0

斷開鏈接 – Darkloki

+0

@Darkloki,url固定,謝謝 – Vinzz

2

HtmlAguilityPack對於拉動網頁元素和輕鬆查找標籤非常有用。但是,如果您需要遠程「引導」網絡會話,我更願意使用WatiN。它表明自己是一個Web單元測試框架,但它在您需要僞造瀏覽器部分時非常有用。此外,它可以遠程控制不同的瀏覽器,以滿足大多數您需要的任務(如查找按鈕並按下它,或者文本字段並在需要登錄時填寫文本)。

1

爲什麼不直接提交url?這就是點擊按鈕的作用。 使用WebRequest.Create您可以直接提交到該網址。不需要加載,解析和「點擊」按鈕。