2012-11-05 69 views
1

所以我試圖登錄到一個頁面,並從該頁面獲取一些數據,但我的問題是填寫這些登錄信息。如何將httpRequest和HtmlAgilityPack一起使用?

我試過了什麼?在網址中發佈數據。通過簡單地添加postname en的值如下:http://stackoverflow.com?postLogin=myUsername&postPassword=myPassword。我用這個URL發送了一個請求。它給了我一個錯誤。我在瀏覽器上查看了網址。它似乎填寫了用戶名,但不是密碼文本框(我寫了正確的帖子)。

我還看到有人給出建議,使用HtmlAgilityPack填寫數據(標記爲答案)。但經過更多搜索後,似乎不可能單獨使用HtmlAgilityPack來完成。 HtmlAgilityPack適合解析html而不是填充它。所以我得出了一個結論,我可能不得不使用httpRequest和HtmlAgilityPack的組合。

我可能是錯的,所以如果你有更好的建議可以幫助我自由指出正確的方向。

但是,如果我想這樣做,我不知道如何將它們一起使用。 我首先將我的webrequest發送到登錄頁面以獲取html頁面。我得到了我的httpWebRequest的響應,但是如何讓我的Webbrowser類解析該響應,然後讓我的webrequest使用用戶名,密碼發送發佈數據,當然還要嘗試提交它?

如果你想在C#中給出答案,我想我可以閱讀它並自己翻譯它。

編輯:我只是用小提琴手,並得到8個正在發送的帖子。這是否意味着我已經發送了所有8以及該網址?

+0

不應該密碼能夠通過網址,這將是足夠好的。至少我找到更好的答案。 – deltu100

回答

1

沒有必要使用WebBrowser來解析HTML。您可以在HTML中查找所需的信息作爲字符串,也可以使用庫如http://htmlagilitypack.codeplex.com/來進行解析。

此外,你會發現http://www.fiddler2.com/非常有用的確定瀏覽器發送到網頁的確切信息,以便您可以使用HttpWebRequest(頭,GET/POST值等)重現行爲。

您也可以嘗試http://www.chadsowald.com/software/fiddler-extension-request-to-code - Fiddler的擴展,它自動生成模仿瀏覽器請求的.NET代碼。

+0

我很愚蠢,我的意思是使用httpRequest而不是Webbrowser類的htmlAgilityPack。我不知道爲什麼我搞砸了我的問題。我會編輯它。並感謝您的小提琴手應用程序似乎很有幫助。 – deltu100

+0

我會做Knagis所說的:安裝Fiddler然後用瀏覽器登錄看看它是如何發送的。如果它使用POST發送,請確保使用HttpWebRequest的方法。 –

+0

我看了,但不是很清楚發佈的地方。我看到一個帖子正在完成,這是「登錄」帖子,而不是我的用戶名和密碼。所以我仍然不清楚究竟該做什麼。 – deltu100