.net – 铁蟒,美丽的汤,win32应用程序

前端之家收集整理的这篇文章主要介绍了.net – 铁蟒,美丽的汤,win32应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
漂亮的汤和铁蟒一起工作吗?
如果是这样的哪个版本的铁蟒?
使用iron python在.net 2.0上分发Windows桌面应用程序是多么容易(主要是c#调用一些python代码来解析html)?
我问自己同样的问题,在努力遵循这里和其他地方的建议,让IronPython和BeautifulSoup与我现有的代码很好地配合,我决定去寻找替代的原生.NET解决方案。 BeautifulSoup是一个很棒的代码,起初它看起来没有任何类似的可用于.NET,但后来我找到了 HTML Agility Pack,如果有的话,我认为我实际上已经获得了一些可修复的BeautifulSoup。它需要干净或苛刻的HTML并从中生成一个优雅的XML DOM,可以通过XPath查询。使用几行代码,您甚至可以获得原始XDocument,然后返回 craft your queries in LINQ to XML.老实说,如果网络抓取是您的目标,那么这是您可能找到的最干净的解决方案。

编辑

这是一个简单的(阅读:根本不健全)示例,解析美国众议院的假期安排:

  1. using System;
  2. using System.Collections.Generic;
  3. using HtmlAgilityPack;
  4.  
  5. namespace GovParsingTest
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. HtmlWeb hw = new HtmlWeb();
  12. string url = @"http://www.house.gov/house/House_Calendar.shtml";
  13. HtmlDocument doc = hw.Load(url);
  14.  
  15. HtmlNode docNode = doc.DocumentNode;
  16. HtmlNode div = docNode.SelectSingleNode("//div[@id='primary']");
  17. HtmlNodeCollection tableRows = div.SelectNodes(".//tr");
  18.  
  19. foreach (HtmlNode row in tableRows)
  20. {
  21. HtmlNodeCollection cells = row.SelectNodes(".//td");
  22. HtmlNode dateNode = cells[0];
  23. HtmlNode eventNode = cells[1];
  24.  
  25. while (eventNode.HasChildNodes)
  26. {
  27. eventNode = eventNode.FirstChild;
  28. }
  29.  
  30. Console.WriteLine(dateNode.InnerText);
  31. Console.WriteLine(eventNode.InnerText);
  32. Console.WriteLine();
  33. }
  34.  
  35. //Console.WriteLine(div.InnerHtml);
  36. Console.ReadKey();
  37. }
  38. }
  39. }

猜你在找的Windows相关文章