"System.StackOverflowException"がHtmlAgilityPack.dllで発生しました

asp.net c# dll html-agility-pack

質問

私は、HtmlAgilityPack.dllを使用してページをスクラップしようとしましたが、いくつかのURLが関数に入りました。私はエラーを受け取り、try-catchブロックでcatchできません。だから誰も私を助けることができますか?

エラー:HtmlAgilityPack.dllで 'System.StackOverflowException'型の未処理の例外が発生しました

public void HtmlLoad(string url)
    {
        try
        {
            HttpWebRequest myHttpWebRequest = null;     //Declare an HTTP-specific implementation of the WebRequest class.
            HttpWebResponse myHttpWebResponse = null;   //Declare an HTTP-specific implementation of the WebResponse class
            //Create Request  // 
            myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
            myHttpWebRequest.Method = "GET";
            myHttpWebRequest.ContentType = "text/html; encoding='utf-8'";
            //Get Response
            myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

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

            Stream data = myHttpWebResponse.GetResponseStream();//client.OpenRead(url);
            doc.Load(data);
            data.Close();

        }
        catch (Exception ex) { throw ex; }
    }

人気のある回答

これをきれいにすることができます

 public static async Task<int> HtmlLoadAsync(string url/*, bool addUserAgent = false*/)
    {
        try
        {
            var client = new HttpClient();
            //if (addUserAgent)                 OPTIONAL 
            //{
            //    client.DefaultRequestHeaders.UserAgent.ParseAdd(UserAgent);
            //}
            //client.Timeout = TimeOut;
            var response = client.GetStringAsync(url);
            var urlContents = await response;
            var document = new HtmlAgilityPack.HtmlDocument();
            document.LoadHtml(urlContents);
            // process document now
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        return 0;
    }

今すぐ呼びましょう

 public static async Task<int> HtmlLoadAsync(string url/*, bool addUserAgent = false*/)
    {
        try
        {
            var client = new HttpClient();
            //if (addUserAgent)                 OPTIONAL 
            //{
            //    client.DefaultRequestHeaders.UserAgent.ParseAdd(UserAgent);
            //}
            //client.Timeout = TimeOut;
            var response = client.GetStringAsync(url);
            var urlContents = await response;
            var document = new HtmlAgilityPack.HtmlDocument();
            document.LoadHtml(urlContents);
            // process document now
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        return 0;
    }



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ