我想使用HTML敏捷包来解析HTML页面中的图片和href链接,但我对XML或XPath知之甚少。尽管在许多网站上查找帮助文档,但我无法解决问题。此外,我在VisualStudio 2005中使用C#,而且我不能流利地说英文,所以,我会衷心感谢能写出一些有用的代码。如何使用Html Agility Pack获取img/src或a/hrefs?
7
A
回答
21
主页上的做一些非常相似,但考虑:
HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm"); // would need doc.LoadHtml(htmlSource) if it is not a file
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{
string href = link["href"].Value;
// store href somewhere
}
所以你可以想象,对于IMG SRC @,只需更换每个a
与img
,并且href
与src
。 你甚至可以简化为:
foreach(HtmlNode node in doc.DocumentElement
.SelectNodes("//a/@href | //img/@src")
{
list.Add(node.Value);
}
相对URL处理,看看Uri
类。
+0
非常感谢!这是我第一次询问经验 – iShow 2011-01-29 11:12:03
6
该示例和接受的答案是错误的。它不会用最新版本进行编译。我尝试别的:
private List<string> ParseLinks(string html)
{
var doc = new HtmlDocument();
doc.LoadHtml(html);
var nodes = doc.DocumentNode.SelectNodes("//a[@href]");
return nodes == null ? new List<string>() : nodes.ToList().ConvertAll(
r => r.Attributes.ToList().ConvertAll(
i => i.Value)).SelectMany(j => j).ToList();
}
这对我有用。
1
也许我太迟了,在这里发表一个答案。以下为我工作:
var MainImageString = MainImageNode.Attributes.Where(i=> i.Name=="src").FirstOrDefault();
相关问题
- 1. Html Agility Pack Xpath
- 2. 无法使用Html Agility Pack获得XPATH
- 3. 使用Html Agility Pack抓取H3的InnerText
- 4. 使用Html Agility Pack提取表格
- 5. HTML Agility Pack - 获取页面摘要
- 6. 使用Html Agility Pack获取html页面上的所有divs id
- 7. Html Agility Pack xpath IEnumerable
- 8. 如何使用C#和html-agility-pack获取html文件中的表的数量
- 9. 使用HTML Agility Pack获取元素的结尾?
- 10. 使用HTML Agility Pack在图片旁边获取文字?
- 11. 如何获取特定单元格的值C#Html-Agility-Pack
- 12. 我可以使用Html Agility Pack吗?
- 13. Html Agility Pack - 从html文档中获取html片段
- 14. Html Agility Pack链接和img src提取
- 15. Html Agility Pack xPath问题
- 16. Html Agility PacK vs Sharp Query?
- 17. Html Agility Pack空值从表
- 18. Html Agility Pack DocumentNode.SelectNodes返回null
- 19. 如何使用HTML Agility Pack编辑HTML片段
- 20. 如何使用HTML Agility Pack动态解析HTML代码?
- 21. 如何使用Html Agility Pack加载文本为html
- 22. 如何使用HTML Agility Pack获取标记中的所有内容?
- 23. 用于Java,Ruby,Python的HTML Agility Pack或HTML Screen Scraping库?
- 24. Html Agility Pack结束 - 不起作用
- 25. HTML Agility Pack HtmlDocument显示全部Html?
- 26. Agility Pack XPath问题
- 27. 使用Html Agility Pack查找并移除指定的HTML标记
- 28. 使用HTML Agility Pack替换HTML div InnerText标记
- 29. Html Agility Pack:查找注释节点
- 30. Html Agility Pack - 循环遍历行和列
而且,可以Html敏捷包解决相对路径? – iShow 2011-01-29 08:30:22