c# - 如何使用 HTML Agility Pack 在 href 中添加数据
问题描述
我有一个代码可以从网站上获取所有 5 个链接,所以我需要通过在前面加上“https://advancecare.pt”来更改这些链接......
现在我有这个代码:
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("myLink");
foreach (HtmlNode ic in doc.DocumentNode.SelectNodes("//div[@class='component row-splitter']"))
{
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlNode test = doc.DocumentNode.SelectNodes("//a[@href]").First();
string hrefValue = link.GetAttributeValue("href", string.Empty);
// test.SetAttributeValue("href", "mylink" + hrefValue);
link.SetAttributeValue("href", "mylink" + hrefValue);
}
}
此代码返回:
https:mylinkmylinkmylinkmylink/hrefValue
解决方案
您迭代文档中的所有div节点,然后迭代文档中的所有链接,因此每个链接的处理次数与文档中的div元素一样多。
只搜索 div 的子链接:
foreach (HtmlNode link in ic.SelectNodes("//a[@href]"))
...