2012-05-31 5 views
1

나는 응답을 http://www.bk.com/en/us/restaurant-locator/index.html?s=89165 에서 읽어야합니다. 다음 코드를 사용했지만 모든 응답을 얻지 못했습니다. 미리 감사드립니다.HTTPWEBREQUEST를 사용하여 URL에서 응답

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); 
    } 

웹 페이지에 모든 데이터를 표시하는 데 도움이 되나요?

답변

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 기사에서 직접 가져온 것입니다. 먼저

http://msdn.microsoft.com/en-us/library/xz398a3f.aspx

+0

나는 내가 페이지의 주소를 찾아 데이터베이스에 DUP해야한다는 점에서 프로젝트를 googlescrapper하고있는 중이 야 그 page..i의 주소 값을 찾을 수있다. 하지만 여기서 나는 주소 값을 얻을 수 없습니다. 웹 페이지에 주소 값이 있어도 공백으로 표시됩니다. 응답에 나타나지 않았습니다. u는이 코드를 실행하고 u는 동일한 것을 얻습니다. – Imran

1

, 당신은 당신이 웹 사이트에서 HTML을 다운로드하는 방법을 해결해야합니다.

  1. XMLDocument.Load 메서드를 사용하고로드 할 문서의 URL을 전달하십시오.
  2. WebClient.DownloadString 방법을 사용하십시오.

두 가지 모두 약 3 줄의 페이지 텍스트를 다운로드하여 위 코드를 훨씬 깔끔하게 만듭니다.

둘째, 제 3 자 웹 사이트를 통해 유효한 XML/XHTML 코드를 만들 수 없으므로 XMLDocument를 사용하여 콘텐츠를 구문 분석하려고 할 때 실패 할 수 있습니다.

세 번째로, 아마도 더 중요한 것은 많은 사이트에서이 방법으로 콘텐츠를 "긁어내는"것을 금지합니다. 당신은 당신이 허용되는지 다시 확인하고 싶을지도 모릅니다.

마침내 .. 해당 페이지에서 찾고자하는 것이 무엇인지에 대한 아이디어를 제공해 주시면 추가로 도움을 드릴 수 있습니다.

+0

나는 그 페이지의 주소 값을 찾아야합니다. 나는 페이지와 dup에서 데이터베이스에 주소를 찾아야한다는 점에서 googlescrapper 프로젝트를하고 있습니다. 하지만 여기서 나는 주소 값을 얻을 수 없습니다. 나는 그것이 웹 페이지에 존재하더라도 공란으로 보여줍니다. 도와주세요! – Imran

+0

BK 웹 사이트가 웹 서비스를 사용하여 위치 목록을 얻는 것이 유용 할 수 있습니다. - '40.7143528'과 '-74.0059731'은 원하는 지역의 위도와 경도입니다. 'http : // www.bk.com/ko/us/restaurants/40.7143528/-74.0059731/15/5/restaurants.xml' 검색하려면 '15 '가 마일 반경이고'5 '가 최대 결과 금액이라고 가정합니다. – Gavin

+0

예 주소 값을 원합니다. 다음 URL을 고려하십시오. http://www.bk.com/en/us/restaurant-locator/index.html?s=89165 주소 값을 원합니다. 2180 East Serene Avenue 및 7255 South Eastern Avenue ..etc – Imran

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(); 
+0

죄송합니다! 그 작동하지 ... 나는 웹 페이지에서 사용할 수있는 모든 응답을받지 못했습니다. 귀하의 의견을 한번 확인하고 해결책을 알려주십시오. 감사! – Imran

관련 문제