2011-06-02 53 views

回答

2

你必须使用HttpWebRequest对象连接到该网站,并刮去的响应信息的链接。

查找包含您尝试查找的内容的html标记或类名称,然后使用正则表达式或字符串函数来获取所需的数据。

很好的例子here

+0

感谢您的解决方案。其实我从网站得到的回应是HTML,在我想要的这个城市名字被返回,现在我想知道如何从这个HTML文件中获得它? – 2011-06-02 14:17:27

+0

我会使用HTML敏捷包。 http://htmlagilitypack.codeplex.com/这里有一个很好的例子:http://kossovsky.net/index.php/2009/07/csharp-html-parser-htmlagilitypack/ – 2011-06-02 14:19:30

0

你可以使用一个WebClient对象,并且一个简单的方法可以用xpath来获取数据。

2

试试这个(你需要包括System.text和System.net)

WebClient client = new WebClient(); 
string url = "http://zipinfo.com/cgi-local/zipsrch.exe?zip=60680"; 
Byte[] requestedHTML; 
requestedHTML = client.DownloadData(url); 

UTF8Encoding objUTF8 = new UTF8Encoding(); 
string html = objUTF8.GetString(requestedHTML); 
Response.Write(html); 
+0

你应该抛弃WebClient对象if你尽管这样做 – 2011-07-11 16:17:58

1

首先,你最好找到这个目的,一个好的Web服务。

,这是一个HttpWebRequest的例子:

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("http://zipinfo.com/cgi-local/zipsrch.exe?zip=60680"); 
       httpRequest.Credentials = CredentialCache.DefaultCredentials;  
       HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse(); 

       Stream dataStream = httpResponse.GetResponseStream(); 
2

它使用重量轻在System.Net命名空间WebClient类最简单的方法。下面的示例代码将只需要下载一个字符串整个响应:

using (WebClient wc = new WebClient()) 
{ 
    string response = wc.DownloadString("http://zipinfo.com/cgi-local/zipsrch.exe?zip=60680"); 
} 

但是,如果您需要在响应和请求过程中加以控制,那么你可以使用更重的重量HttpWebRequest Class。例如,你可能想要处理不同的状态码或标题。在CodeProject上的文章How to use HttpWebRequest and HttpWebResponse in .NET中有一个使用HttpWebRequest的例子。