HTML 敏捷包为什么 HTML 页面无法获取字符串?

HTML Agility pack why does not the HTML page get to string?

错误"HtmlAgilityPack.HtmlNode.SelectSingleNode(...) return null." 我的模范代码。

            string url = @"http://www.baza-firm.com.pl/?vm=zabrze&pg=2&b_szukaj=szukaj";
        HtmlWeb web = new HtmlWeb();
        //Process.Start(url); //wyswietlenie strony
        var doc1 = web.Load(url);

        MessageBox.Show(doc1.DocumentNode.OuterHtml.ToString());


        var nazwa = doc1.DocumentNode.SelectSingleNode("//span[@class='przeppoz']").InnerText;
        var ulica = doc1.DocumentNode.SelectSingleNode("//div[@itemprop='streetAddress']").InnerText;
        var kod_pocztowy = doc1.DocumentNode.SelectSingleNode("//div/span[@itemprop='postalCode']").InnerText;
        var miejscowość = doc1.DocumentNode.SelectSingleNode("//div/span[@itemprop='addressLocality']").InnerText;
        var wojewodztwo = doc1.DocumentNode.SelectSingleNode("//div/span[@itemprop='addressRegion']").InnerText;
        var telefon = doc1.DocumentNode.SelectNodes("//div[@class='divSMV_tel1 clearBoth']");
        List<string> lista_tel = new List<string>();
        foreach (var node in telefon)
        {
            lista_tel.Add(node.InnerText);
        }

        MessageBox.Show("nazwa " + nazwa
                        + "\nkod pocztowy " + kod_pocztowy
                        + "\nulica " + ulica
                        + "\nkod pocztowy " + kod_pocztowy
                        + "\nmiejscowość " + miejscowość
                        + "\nwojewództwo " + wojewodztwo
                        + "\ntelefon " + lista_tel[0].ToString());

之前的工作现在显示为空白页。为什么敏捷包不起作用?

您的服务器 returns 404 - Not Found 作为响应状态,也是 returns 您期望的 html 内容。

所以,通过稍微更改下载代码,您的解析代码可以工作...

string url = @"http://www.baza-firm.com.pl/?vm=zabrze&pg=2&b_szukaj=szukaj";
var doc1 = new HtmlAgilityPack.HtmlDocument();

using (var client = new HttpClient())
{
    var resp = await client.GetAsync(url);
    MessageBox.Show(resp.StatusCode.ToString());
    var html = await resp.Content.ReadAsStringAsync();
    doc1.LoadHtml(html);
}


MessageBox.Show(doc1.DocumentNode.OuterHtml.ToString());
.....
......