Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用C语言获取网页的输出#_C#_Html_Output_Htmltext - Fatal编程技术网

C# 用C语言获取网页的输出#

C# 用C语言获取网页的输出#,c#,html,output,htmltext,C#,Html,Output,Htmltext,我正在尝试获取生成的网页内容,以便提取显示文本。我尝试了下面的代码,但它得到的是源html,而不是结果html string urlPath = "http://www.cbsnews.com/news/jamar-clark-protests-follow-decision-not-to-file-charges-in-minneapolis-police-shooting/"; WebClient client = new WebClient(); string str = client.D

我正在尝试获取生成的网页内容,以便提取显示文本。我尝试了下面的代码,但它得到的是源html,而不是结果html

string urlPath = "http://www.cbsnews.com/news/jamar-clark-protests-follow-decision-not-to-file-charges-in-minneapolis-police-shooting/";
WebClient client = new WebClient();
string str = client.DownloadString(urlPath);
将str变量中的文本与Chrome浏览器中Developer工具中的html进行比较,您将得到不同的结果


如果您有任何建议,我们将不胜感激。

我想您的意思是您想要文章文本。如果是这样,你需要采取不同的行动。您引用的页面加载了客户端脚本,该脚本将内容注入基本HTML文档。这是通过执行客户端脚本来完成的。您需要在脚本执行后解析DOM,以获取您感兴趣的内容。

正如其他人所指出的,实际的web浏览器将解析下载的HTML并对其执行javascript,这可能会改变其内容。虽然您可以尝试自己进行解析,但最简单的方法是让真正的web浏览器为您进行解析,然后获取结果

特别是在C#中,最简单的解决方案是使用来自Windows窗体的,它本质上是将IE公开给您的程序,允许您控制它。使用
Navigate
方法加载有问题的URL,然后使用
Document
属性导航DOM。此时,您可以获取
outerHTML
,以获取DOM的最终内容作为HTML


如果您不是在编写Windows程序,并且对无头操作更感兴趣,请查看。这是一个无头Webkit浏览器,可以从javascript编写脚本,并提供类似的功能,尽管不是用C#

编写的。问题是……?Chrome解析HTML而不仅仅检索HTML。这意味着要处理特殊字符、换行符等。你到底想做什么?您所看到的可能更接近于“查看页面源代码”,编辑页面上执行的javascript,加载的iFrame和更多可以更改呈现的html与源代码的对比,因此可能永远不会精确,问题是“如何通过c获取浏览器中显示的文本?”。我正在尝试提取显示的文本以进行分析。上面的代码只获取html,而不是实际输出。那么,在所有javascript执行和其他事件发生后,我如何获得html呢?我将遵循javascript路线。谢谢