我想從我的站點獲取HTML字符串,因爲它在瀏覽器中呈現C# - 獲取渲染HTML頁面
首先,我試圖使用Web客戶端
using (var client = new WebClient())
{
var content = client.DownloadString("my_site_address");
}
,但在我的網站我有一些JavaScript代碼,改變視圖(和webClient不運行JavaScript)
所以我使用wpf WebBrowser和nevigate到慾望網站後顯示的頁面(如預期),但當我嘗試獲取它的HTML字符串顯示像webClient
dynamic doc = MainBrowser.Document;
var htmlText = doc.documentElement.InnerHtml;
這是我得到的html:
<!DOCTYPE html>
<head>
<title>Title</title>
</head>
<body>
<div class="conteiner">
<div class="matrix">
<script type="text/javascript">
// some script code
</script>
<script type="text/javascript" src="xxx"></script>
<a href="Matrix/index.html">Matrix</a>
</div>
<div class="zoom">
<a href="zoom/index.html">Zoom</a>
</div>
</div>
<div class="test">
<script type="text/javascript">
// some script code
</script>
<script type="text/javascript" src"xxx2"></script>
</div>
</body>
</html>
,這是我應該如何的JavaScript更改後得到它吧:
<html><head>
<title>Title</title>
</head>
<body>
<div class="conteiner">
<div class="matrix">
<script type="text/javascript">
</script>
<script type="text/javascript" src="xxx"></script><iframe ></iframe><script ></script><div ><div ><iframe >
<html><head>
<title></title>
</head>
<body>
<div >
<ul><li><ol><li <a </a></li></ol></li></ul> </div>
</body></html>
</iframe></div></div></div>
<a href="Matrix/index.html">Matrix </a>
</div>
<div class="zoom">
<a href="zoom/index.html">Zoom</a>
</div>
</div>
<div class="test">
<script type="text/javascript">
</script>
<script type="text/javascript" src="xxx2"></script><div ><div ><div ><iframe ></iframe></div></div></div>
</div>
</body></html>
請幫助:)
不能和你所使用的工具做到這一點。 – Hogan 2014-10-16 19:44:47
您可能需要在客戶端而不是服務器端執行此操作。 – ariscris 2014-10-16 19:48:03
你最好的選擇是在c#中重新創建javascript函數,並在檢索完html後處理它。 – Banana 2014-10-16 19:48:46