敏捷包AggregateException

时间:2019-03-04 23:36:56

标签: c# httpwebrequest html-agility-pack

我可以使用以下代码捕获一个网站,但是当我尝试使用第二个代码片段中所示的HTML Agility Pack时,出现以下错误。

    string strURL = " http://www.donbest.com/mlb/odds/money-lines/";

        try
        {
            WebRequest req = WebRequest.Create(strURL);
            StreamReader stream = new StreamReader(req.GetResponse().GetResponseStream());
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            string strLine;

            while ((strLine = stream.ReadLine()) != null)
            {
                if (strLine.Length > 0)
                    sb.Append(strLine + Environment.NewLine);
            }
            stream.Close();
             m_strSite = sb.ToString();
             currentSiteData = m_strSite;
        }
        catch (Exception ex)
        {
            string exStr = ex.ToString();
        }

这是敏捷包代码。

string siteUrl = "  http://www.donbest.com/mlb/odds/money-lines";
        HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
        var doc = await Task.Factory.StartNew(() => web.Load(siteUrl));

       foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table/tbody"))
        {
            Debug.WriteLine("Found: " + table.Id);
            foreach (HtmlNode row in table.SelectNodes("tr"))
            {
                Debug.WriteLine(row.InnerText.ToString());
                string tempRow = row.InnerHtml;
                foreach (HtmlNode cell in row.SelectNodes("th|td"))
                {
                    string tempCell = cell.InnerText;
                }
            }
        }

我在web.Load行上收到错误消息。

System.AggregateException “发生一个或多个错误。(发送请求时发生错误。)”

  

System.AggregateException     HResult = 0x80131500     Message =发生一个或多个错误。 (发送请求时发生错误。)     来源= System.Private.CoreLib     堆栈跟踪:      在System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task 1.get_Result()      在HtmlAgilityPack.HtmlWeb.Get(Uri uri,String方法,String路径,HtmlDocument文档,IWebProxy代理,ICredentials凭据)      在HtmlAgilityPack.HtmlWeb.LoadUrl处(Uri uri,String方法,IWebProxy代理,ICredentials凭据)      在HtmlAgilityPack.HtmlWeb.Load(Uri uri,String方法)      在HtmlAgilityPack.HtmlWeb.Load(字符串url)      在C:\ Projects2019 \ MLB_2019_Wagers \ MLB_2019_Wagers \ Views \ MainPage.xaml.cs:line 233

中的MLB_2019_Wagers.Views.MainPage.d__2.MoveNext()

内部异常1: HttpRequestException:发送请求时发生错误。

内部异常2: COMException:找不到与此错误代码关联的文本。

'':发现无效字符。

1 个答案:

答案 0 :(得分:0)

尝试一下:

string siteUrl = "http://www.donbest.com/mlb/odds/money-lines";
var doc = web.Load(siteUrl);

siteUrl字符串中有多余的空间,我认为您不需要为此启动新任务。