2017-12-27 25 views
0

URL을 사용하여 웹 페이지의 HTML 코드를 가져 오려고합니다. 다음 코드를 작성했지만 작동하지만 결과 문자열을 비교하면 google chrome의 검사를 사용할 때 보이는 코드와 일치하지 않습니다. 나는 HTML 크럽은 아니지만 다른 것 같다. 다음과 같이웹 페이지의 HTML 코드 받기

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://fantasy.premierleague.com/a/leagues/standings/517292/classic"); 

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

StreamReader stream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(response.CharacterSet)); 

string PageScript = stream.ReadToEnd(); 

결과 스크립트입니다 : https://ideone.com/DXzfKy

을 나는 보안 프로토콜

ServicePointManager.Expect100Continue = true; 
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 

을 설정하기 위해이 두 라인을 사용하고 누군가가 내가 할 수보고 무엇을하고 무엇을 말해 줄 수있는 경우 틀렸어, 나는 감사 할 것이다.

+2

"다를 것 같습니다." 어떤 방법으로? –

+0

당신이하고 싶은 한 가지는 스트림을 'using'블록이나 그와 같은 것으로 처리하는 것입니다. 그래도 블록 밖에서'PageScript'를 선언해야합니다. –

+0

@D 스탄 틀리 설명하는 방법을 모르겠지만 검사 코드에서 볼 수있는 특정 블록을 찾고 있지만 출력 문자열에서 종료하지는 않습니다. 출력 문자열에 대한 링크를 제공했으며, URL을 사용하여 코드를 검사하고 직접 볼 수있는 경우. –

답변

0

WebClient의 인스턴스를 만들고이를 사용하여 URI에서 데이터를 읽을 수 있으면 StreamReader로 변환하고 마지막으로 일반 텍스트 형식으로 변환 할 수 있습니다.

WebClient client = new WebClient(); 
Stream dataFromPage = client.OpenRead(new Uri("https://ideone.com/DXzfKy")); 
StreamReader reader = new StreamReader(dataFromPage); 
string htmlContent = reader.ReadToEnd();