【发布时间】:2014-10-16 19:42:52
【问题描述】:
我正在尝试从我的网站获取浏览器中显示的 html 字符串
首先我尝试使用网络客户端
using (var client = new WebClient())
{
var content = client.DownloadString("my_site_address");
}
但在我的网站中,我有一些更改视图的 javascript 代码(并且 webClient 不运行 javascript)
所以我使用 wpf WebBrowser 并在导航到所需站点后显示页面(如预期的那样),但是当我尝试获取 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>
请帮忙:)
【问题讨论】:
-
无法使用您正在使用的工具执行此操作。
-
您可能需要在客户端而不是服务器端执行此操作。
-
最好的办法是在 c# 中重新创建 javascript 函数并在检索到 html 后对其进行处理。
-
你可以试试 webkit.net webkitdotnet.sourceforge.net
-
那么我需要哪些工具?
标签: javascript c# html