C# 使用 HtmlAgilityPack 从网站打印特定字符串
C# Print a specific string fom a website using HtmlAgilityPack
我需要从我们用于获取数据的网站获取一些文本。我终于找到了如何使用 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;
我想因为文本在 class 我无法访问它。
谁能帮我找到这些字符串的更具体路径?
该网站是荷兰垃圾日历,请不要介意。
浏览器为 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;
您还可以使用“//”和 class 选择器来使用 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;
我需要从我们用于获取数据的网站获取一些文本。我终于找到了如何使用 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;
我想因为文本在 class 我无法访问它。
谁能帮我找到这些字符串的更具体路径?
该网站是荷兰垃圾日历,请不要介意。
浏览器为 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;
您还可以使用“//”和 class 选择器来使用 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;