2010-04-13 2 views
0

일부 근근이 애플 리케이션을 작업하고 있습니다. 문제가 발생했는데 문제가 발생했습니다. 나는 테스트를 위해 아래의 코드에서 원래의 긁는 곳을 googles 웹 페이지로 대체했습니다. 내 다운로드 doesnt는 모든 것을 얻는 것처럼 보입니다. body와 html 태그는 close 태그가 빠져 있습니다. 모든 것을 다운로드하려면 어떻게해야합니까? 무슨 내 샘플 코드 문제 :C# WebClient는 부분적인 HTML 만 다운로드합니다.

string filename = "test.html"; 

WebClient client = new WebClient();    
string searchTerm = HttpUtility.UrlEncode(textBox2.Text);    
client.QueryString.Add("q", searchTerm); 
client.QueryString.Add("hl", "en"); 
string data = client.DownloadString("http://www.google.com/search"); 

StreamWriter writer = new StreamWriter(filename, false, Encoding.Unicode); 
writer.Write(data); 
writer.Flush(); 
writer.Close(); 

답변

4

구글의 웹 페이지가 자기 폐쇄 될 수 BODYHTML 태그를 의미 HTML 5에있다 - 구글을 생략 이유 (믿거 나 말거나, 그것은 그들에게 대역폭을 절약 할 수 있습니다.)

See this article.

"HTML/SGML"모드 (XHTML 이전에 HTML과 같은 닫는 태그를 생략 할 수 있음) 또는 XML 규칙을 따르는 "XHTML"(모든 태그를 닫아야 함) 모드로 HTML5를 작성할 수 있습니다.

브라우저가 페이지를 구문 분석하기 위해 선택한 것은 Content-type 헤더를 HTML/SGML 구문으로 text/html, XHTML 구문으로 application/xhtml+xml 중 어느 것을 보낼지에 따라 다릅니다. (출처 : HTML5 syntax - HTML vs XHTML)

0

... 구글의 페이지 <body><html>에 대한 닫는 태그가 없습니다. 미친 최적화에 대해 이야기하십시오 ...

0

http://www.google.com/search에는 종료 태그가 없습니다.

+0

@walther : OP에서 가까운 태그가 다운로드되지 않는다고 불평하고있었습니다. 나는 그들이 다운로드 할 수 없다고 설명했다. 어떻게 대답하지 않습니까? –

+0

글쎄, "GridView에서 항목을 어떻게 선택합니까?"라는 질문이있을 때와 같은 대답입니다. 당신은 "네, 할 수 있어요!"라고 대답합니다. 당신은 무슨 일이 일어나고 있는지 더 이상 설명하지 않고 여기에 분명히 말하고 있습니다. 그것이 내가 귀하의 게시물을 매우 유용하게 생각하지 않는 이유입니다. 그게 전부입니다 ;-) 개인적인 것은 없습니다. – walther

+0

@walther : 걱정 마세요. 나는 개인적으로 비판을하지 않습니다. 나는 단지 당신의 평가에 동의하지 않습니다. 닫는 태그가 없다는 것이 OP에 명백하지 않았기 때문에 유추가 적합하지 않습니다. OP가 코드를 어떻게 든 떨어 뜨린 것으로 생각했습니다. 구글이 왜 태그를 제외하는지에 대한 OP가 질문했다면, 당신의 비판은 잘 정립되었을 것입니다. (그렇지만 저는 처음부터 이렇게 대답하지 않았습니다). –

관련 문제