HtmlAgility : 내용 없음 (C #, UWP)

c# html html-agility-pack uwp win-universal-app

문제

htmlagility 부분이 작동하는지 여부를 증명하는 것을 잊어 버린 것을 깨달은 후에 테이블을 구문 분석하기 위해 htmlagilitypack을 사용하려고했습니다. ... 그리고 그것의 명백한 그것 doesnt 일 I didnt는 나가 놓친 무슨을 알고 있고 어디에서 나가 완전히 틀리게 했는가 ... 원인 Ima 초심자 ... 이렇게 pls는 저에 너무 단단하지 않다.

public partial class WebForm1 : System.Net.Http.HttpClient
{
    protected void Page_Load(object sender, EventArgs e)
    {

        System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient();

        string header = "ie";
        if (!headers.UserAgent.TryParseAdd(header))
        {
            throw new Exception("Invalid header value: " + header);
        }

        header = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
        if (!headers.UserAgent.TryParseAdd(header))
        {
            throw new Exception("Invalid header value: " + header);
        }

        HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();


        htmlDoc.LoadHtml(" http://www.eurogymnasium-waldenburg.de/egw_content/Stunden_Vertretungsplan/home.html");



        HtmlNode docNodes = htmlDoc.DocumentNode;

        HtmlNode navNode = htmlDoc.GetElementbyId("bereichaktionen");

        HtmlNode docNode = htmlDoc.DocumentNode.SelectSingleNode("/html/body[@class='ui-widget']/div[@id='main']/div[@id='vplan']/div[@id='bereichaktionen']");

        string nodeValue;

        nodeValue = (docNode.InnerText);

        Debug.WriteLine("nodeValue");

// 나는 뭔가 이상한 것 같은 것을 의심하지만 확실하지 않다.

        if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0)
        {

        }
        else
        {

            if (htmlDoc.DocumentNode != null)
            {
                HtmlAgilityPack.HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//body");

                if (bodyNode != null)
                {

                }
            }
        }
    }

원산지 url이 있습니다.

XL 모두 주셔서 감사합니다.

인기 답변

첫째, 현재 사용중인 타사 패키지 인 Html Agility Pack 은 범용 앱에서 지원되지 않습니다. 범용 앱에서 지원되는 .NET Core 1.4.9.2 용 HtmlAgilityPack을 사용하십시오.

둘째, 메소드 htmlDoc.LoadHtml(string html) 의 매개 변수는 HTML 사이트의 URI는 아니지만 웹 요청의 응답에서 가져올 수있는 HTML 내용입니다.

올바른 코드는 다음과 같아야합니다.

WebRequest request = HttpWebRequest.Create("http://www.eurogymnasium-waldenburg.de/egw_content/Stunden_Vertretungsplan/home.html");
WebResponse response = await request.GetResponseAsync();
Stream stream = response.GetResponseStream();
var result = "";
using (StreamReader sr = new StreamReader(stream))
{
    result = sr.ReadToEnd();
}
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(result);
var node = htmlDoc.DocumentNode.SelectSingleNode("/html/body[@class='ui-widget']/div[@id='main']/div[@id='vplan']/div[@id='bereichaktionen']");

또한 전체 프로젝트 CHtmlAgility 를 다운로드하여 테스트 용으로 다운로드 할 수 있습니다.



Related

아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow