【问题标题】:C# Print a specific string fom a website using HtmlAgilityPackC# 使用 HtmlAgilityPack 从网站打印特定字符串
【发布时间】:2020-12-04 11:09:21
【问题描述】:

我需要从我们用来获取数据的网站上获取一些文本。我终于找到了如何使用 HtmlAgilityPack 并找到 Xpath 来打印网站上的一些文本。

但是当我尝试打印日期和种类时,编码如下:

<span class="span-line-break">zaterdag 05 december 2020</span> //Date
<span class="afvaldescr">Papier en karton</span> //Kind

我无法使用我当前的代码访问这两个字符串:

        public string Postalcode = "6093DK";
        public string Number = "2";
        public string Add = "";


            string url = "https://mijnafvalwijzer.nl/nl/" + Postalcode + "/" + Number + "/" + Add;
            var web = new HtmlAgilityPack.HtmlWeb();
            HtmlDocument doc = web.Load(url);
            
            string when = doc.DocumentNode.SelectNodes("//*[@id=\"december-2020\"]/div/table[1]/tbody/tr/td[1]/a/p/span[1]")[0].InnerText;
            string what = doc.DocumentNode.SelectNodes("//*[@id=\"december-2020\"]/div/table[1]/tbody/tr/td[1]/a/p/span[2]")[0].InnerText;

            textBox1.Text = when;
            textBox2.Text = what;

我认为因为文本在一个类中,所以我无法访问它。

谁能帮我找到这些字符串的更具体的路线?

网站是荷兰垃圾日历,别介意。

【问题讨论】:

    标签: c# web-scraping html-agility-pack


    【解决方案1】:

    浏览器为table 元素插入tbody,尽管它不在html 中。所以在这里我刚刚从你的 XPath 中删除了tbody。在 Chrome 中,您可以使用网络选项卡查看原始响应

    string when = doc.DocumentNode.SelectNodes("//*[@id=\"december-2020\"]/div/table[1]/tr/td[1]/a/p/span[1]")[0].InnerText;
    string what = doc.DocumentNode.SelectNodes("//*[@id=\"december-2020\"]/div/table[1]/tr/td[1]/a/p/span[2]")[0].InnerText;
    

    您还可以使用“//”和类选择器来使用 XPath 的缩短版本

    string when = doc.DocumentNode.SelectNodes("//*[@id=\"december-2020\"]//table[1]//span[@class=\"span-line-break\"]")[0].InnerText;
    string what = doc.DocumentNode.SelectNodes("//*[@id=\"december-2020\"]//table[1]//span[@class=\"afvaldescr\"]")[0].InnerText;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      相关资源
      最近更新 更多