C #은 웹 컨텐츠를 가져옵니다

C #을 일반적으로 웹 클라이언트, 웹 브라우저 또는 HttpWebRequest를 / HttpWebResponse 클래스를 사용하여 웹 콘텐츠를 세 가지 방법이있다.

 

A. 사용하여 웹 클라이언트

  

1  이용 시스템;
2  사용 System.Collections.Generic 단계;
(3)  사용 System.IO 단계;
(4)  이용 을 System.Linq 단계;
5  이용 System.Net;
6  이용 System.Text 단계;
7  사용 System.Threading.Tasks 단계;
8  
9  스페이스 day0917가
 10  {
 11      클래스 프로그램
 12      {
 13          정적  무효 메인 ( 문자열 []에 args)
 14          {
 15              시도 
16              {
17                  웹 클라이언트 MyWebClient = 새로운 새로운 웹 클라이언트 ();
 18                  // 얻거나 인터넷 리소스 네트워크 인증 정보를 인증하도록 요청 설정 
19                  MyWebClient.Credentials의 =의 CredentialCache.DefaultCredentials;
 20 개                  // 특정 사이트에서 다운로드 된 데이터를 
21                  바이트 [] PageData MyWebClient.DownloadData = ( " http://www.163.com " ); 
 (22)                  // 웹 페이지에 액세스 문구 사용, GB2312를 사용하는 경우     
23                  문자열 pageHtml = Encoding.Default.GetString (PageData)
 24을                  // Encoding.UTF8.GetString pageHtml = 문자열 (PageData) 
 (25)                  //웹 페이지에 액세스 할 수는 UTF-8을 사용하는 경우 문구가 사용됩니다
 (26)                  // 콘솔 입력 콘텐츠 수집을 
(27)                  ; Console.WriteLine (pageHtml)
 (28)                  var에 파일 = 해당 AppDomain.CurrentDomain.BaseDirectory;
 29 개                  // 검색된의 내용을 텍스트 물품 
(30)                  (가) 사용 (SW = StreamWriter는 새로운 신규 StreamWriter를가 ( @ " \ 과정 \ 총 \ 코드 \ 데이터를 페치 \ day0917 \ day0917가 a.txt이 \ E는 " ))
 (31)가                  {
 32                      ; sw.Write (pageHtml)
 (33)는이                  }
 34 인                  Console.ReadLine은 (); // 콘솔 일시 정지하자, 또는 덧     
35              }
 (36)             캐치 (WebException이 WEBEX)
 37              {
 38                  Console.WriteLine (webEx.Message.ToString ());
39              }
 40              Console.ReadKey ();
41          }
 42      }
 43 }
웹 클라이언트

 

II.를 사용하여 웹 브라우저

(1) 웹 브라우저 웹 = 새로운 웹 브라우저 (); 
2 web.Navigate ( " http://www.xjflcp.com/ssc/ " ); 
3 web.DocumentCompleted + = 새로운 WebBrowserDocumentCompletedEventHandler (web_DocumentCompleted); 
(4)  공극은 (web_DocumentCompleted 오브젝트 송신자 WebBrowserDocumentCompletedEventArgs E) 
 5          { 
 6              웹 브라우저 = 웹 (웹 브라우저)를 송신기; 
7              HtmlElementCollection을 ElementCollection = web.Document.GetElementsByTagName ( " " ); 
8             foreach는 (는 HTMLElement 항목 ElementCollection으로) 
 9              { 
 10                   File.AppendAllText ( " Kaijiang_xj.txt " , item.InnerText); 
11              } 
 12          }
웹 브라우저

 

III. 사용의 HttpWebRequest / HttpWebResponse 클래스

하나  의 HttpWebRequest httpReq; 
2  HttpWebResponse 클래스 httpResp; 
3  
4  문자열 strBuff = "" ; 
5  문자 [] = cbuffer 새로운  문자 [ 256 ]; 
6  INT byteRead = 0 ; 
7  
8  문자열 파일 이름 = @ " C : \ log.txt에 " ; 
9  /// 定义写入流操作
10  공공  공극 WriteStream () 
 11  { 
 12 열린 httpURL = 새로 열린 (txtURL.Text);
(13) 
14  /// 의 HttpWebRequest WebRequest 클래스 클래스에서 상속 및 방법 WebRequest 클래스 CREAT을 확립 할 필요성에 의해, 자신의 생성자하지 않으며, 필수 유형 변환 
(15)        httpReq = (HttpWebRequest를)이이 WebRequest.Create합니다 (HTTPUrl) 
 16  /// 로 HttpWebRequest를 HttpWebResponse 클래스를 설정하기위한하는 GetResponse () 메소드는, 캐스팅 
(17).  
(18)가     httpResp = 합니다 (HttpWebResponse 클래스) httpReq.GetResponse () 
 . 19  /// 하면 GetResponseStream ()는 HTTP 응답 데이터 스트림을 얻고, 콘텐츠의 URL에 지정된 페이지의 취득을 시도하는 방법
 (20)  
21       /// 페이지의 내용 성공이, 장소는 실패가 ProtoclViolationException 오류가 발생하면, 형성 돌아 System.IO.Stream에합니다. try 블록에 다음 처리 코드는 올바른 방법으로해야한다. 다음은 간단한 처리 
(22)는 스트림 respStream = httpResp.GetResponseStream ();
 (23)가  
24  ///스트림 콘텐츠의 형태로 콘텐츠하면 GetResponseStream는 StreamReader 클래스를 사용하여 획득 될 수있다 리턴 
(25)  
(26)  (판독 컨텐츠 페이지의 소스 코드를 순차 읽기 방법에서는 StreamReader 클래스 코딩 포맷 라인마다 라인 단부를 읽어 UTF8 ) 
 27 에서는 StreamReader respStreamReader = 새로운 새 에서는 StreamReader (respStream, Encoding.UTF8)
 28  
29 byteRead = respStreamReader.Read (cbuffers, 0 , 256 ), 
 30  
(31)이  그동안 ! (byteRead = 0 ) 
 32  { 
 33 인  문자열 strResp = 새로운 새  문자열 (cbuffers, 0 , byteRead) 
 (34)는                    strBuff + = strBuff strResp; 
 35                   byteRead = respStreamReader.Read (cbuffer, 0 , 256 ); 
36  } 
 37  
38  respStream.Close (); 
39 txtHTML.Text = strBuff; 
40 }
의 HttpWebRequest / HttpWebResponse 클래스

 

위는 전체 페이지의 모든 데이터를 얻을 수 있으며, 어떤 치료를하지 않았다

이제 우리는 다음 기사 쓰기를 얻기 위해 데이터 NSoup에 따라 처리 데이터에 수행 할 수 있습니다

추천

출처www.cnblogs.com/qiao298/p/11532646.html