我必须阅读http://www.bk.com/en/us/restaurant-locator/index.html?s=89165的回复 。我使用了以下代码但是没有得到所有的回复。提前谢谢。
protected void Page_Load(object sender, EventArgs e)
{
string sUrl = "http://www.bk.com/en/us/restaurant-locator/index.html?s=89165";
XmlDocument rssDoc = new XmlDocument();
XmlTextReader rssReader = new XmlTextReader(sUrl.ToString());
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(sUrl);
Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
StreamReader objReader = new StreamReader(objStream, Encoding.UTF8);
WebResponse wr = wrGETURL.GetResponse();
Stream receiveStream = wr.GetResponseStream();
StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);
string content = reader.ReadToEnd();
Response.Write(content);
}
是否有人帮助将所有数据显示在网页上?
答案 0 :(得分:1)
除非您的方法有特定原因,否则我会使用webclient。
Console.Write("\nPlease enter a URI (for example, http://www.contoso.com): ");
string remoteUri = Console.ReadLine();
// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
// Download home page data.
Console.WriteLine("Downloading " + remoteUri);
// Download the Web resource and save it into a data buffer.
byte[] myDataBuffer = myWebClient.DownloadData (remoteUri);
// Display the downloaded data.
string download = Encoding.ASCII.GetString(myDataBuffer);
Console.WriteLine(download);
Console.WriteLine("Download successful.");
以上示例直接来自MSDN文章。
答案 1 :(得分:1)
首先,您需要解决从网站下载HTML的方式。
XMLDocument.Load
方法并将其传递给您要加载的文档的网址。WebClient.DownloadString
方法。两者都会在大约3行中下载页面文本,使您的上述代码更加清晰。
其次,您不能依赖第三方网站来创建有效的XML / XHTML代码,这意味着当您尝试使用XMLDocument解析内容时,它可能会失败。
第三,也许更重要的是,许多网站禁止您在此方法中“抓取”内容。您可能需要仔细检查是否允许。
最后..如果您向我们提供您希望在该页面中找到的内容的想法,我们可能会为您提供进一步的帮助。
答案 2 :(得分:0)
请在此处试用此代码......
System.Net.HttpWebRequest _HttpWebRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(_URL);
_HttpWebRequest.AllowWriteStreamBuffering = true;
// set timeout for 20 seconds (Optional)
_HttpWebRequest.Timeout = 20000;
// Request response:
System.Net.WebResponse _WebResponse = _HttpWebRequest.GetResponse();
// Open data stream:
System.IO.Stream _WebStream = _WebResponse.GetResponseStream();