2010-12-17 50 views
0

我在教自己的代码,所以请原谅无知。输出网站X HTML到控制台在C#

所以我的问题是,为了能够输出特定网站(例如google.com)的HTML到控制台,我需要阅读/学习什么?

谢谢。

+0

你的意思是输出在一个控制台应用程序的HTML? – Pieter888 2010-12-17 15:57:04

+0

是的,这是正确的! – super9 2010-12-17 16:00:31

回答

1

我建议你从这里开始:http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest%28v=VS.90%29.aspx

从本质上讲,创建HttpWebRequest,然后调用GetResponse()方法。然后您可以读取响应流并将其输出到您的控制台。

+0

为什么在HttpWebRequest的描述中说OBSOLETE? – super9 2010-12-17 16:04:54

+0

构造函数已经过时(意味着它可能在将来被删除),还有一种不同的方式来生成请求,但我会留给你去弄清楚。 ;) – CodingGorilla 2010-12-17 16:10:24

0

大多数浏览器允许您右键单击并选择“查看源代码”,这是查看HTML的最简单方法。

+0

是的,但我想以编程方式将html作为自己的迷你项目提取到控制台。 – super9 2010-12-17 15:57:19

+0

我看@编码大猩猩有正确的做法。 – Lazarus 2010-12-17 16:00:04

0

查看WebClient类,特别是MSDN页面底部的示例。

1

使用HttpWebRequest创建请求并将响应输出到控制台。

using System; 
using System.IO; 
using System.Net; 
using System.Text; 

namespace Examples.System.Net 
{ 
    public class WebRequestGetExample 
    { 
     public static void Main() 
     { 
      // Create a request for the URL.   
      WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html"); 
      // If required by the server, set the credentials. 
      request.Credentials = CredentialCache.DefaultCredentials; 
      // Get the response. 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
      // Display the status. 
      Console.WriteLine (response.StatusDescription); 
      // Get the stream containing content returned by the server. 
      Stream dataStream = response.GetResponseStream(); 
      // Open the stream using a StreamReader for easy access. 
      StreamReader reader = new StreamReader (dataStream); 
      // Read the content. 
      string responseFromServer = reader.ReadToEnd(); 
      // Display the content. 
      Console.WriteLine (responseFromServer); 
      // Cleanup the streams and the response. 
      reader.Close(); 
      dataStream.Close(); 
      response.Close(); 
     } 
    } 
} 
+1

阅读Darrell的代码并了解...不知道你会学到什么,除了很多人会在这里为你做的工作; – Lazarus 2010-12-17 16:01:06

+0

我想MSDN的复制和粘贴是艰难的。 :) – DarrellNorton 2010-12-17 16:03:31

+0

是的,我意识到这一点。注意我并没有要求任何人提供解决方案,而是指向我自己正确学习这些东西的正确方向!大声笑 – super9 2010-12-17 16:03:51

0

这将这样的伎俩:

WebClient client = new WebClient(); 
Stream data = client.OpenRead("www.google.com"); 
StreamReader reader = new StreamReader(data); 
string str = reader.ReadLine(); 
Console.WriteLine(str);