我需要为即将开始的项目提供建议。
简而言之,我的应用程序必须访问某个足球网站,下载HTML并提取必要的数据。
这是我到目前为止所做的:
:: 1)访问某个足球网站(例如http://www.livescore.com/default.dll?page=england)并使用WebClient下载HTML。
:: 2)使用SgmlReader将HTML转换为XML
:: 3)使用XmlDocument检索我要查找的数据。通常这涉及:
::::::: 3.1)使用GetElementsByTagName()检索节点(例如GetElementsByTagName(“tr”))
::::::: 3.2)循环访问GetElementsByTagName()方法返回的节点列表
有没有更好的方法来做我想做的事情?
我在想LINQ to XML。你认为这会改善表现吗?
我们将非常感谢任何建议或意见!
答案 0 :(得分:5)
只需使用HTML Agility Pack! http://www.codeplex.com/htmlagilitypack
通过这种方式,您可以使用XPath查询文档以获取所需的节点。您甚至可以使用Firefox的插件Firebug来帮助您构建XPath查询
答案 1 :(得分:0)
使用these guys这样的服务,他们为您完成了大部分工作。您还可以使用免费服务,例如Dapper。我相信您可以导出不同格式的数据,虽然我不知道您是否可以实时获取数据,但可能会有延迟。
如果您不想使用第三方解决方案在内部编程,可以节省您的时间和金钱。
答案 2 :(得分:0)
将数据转换为XML后,可以使用XSLT将其转换为更简单的XML集,以及更适合您目的的XML集。从那里,您可以使用LINQ to XML从XML中获取所需的数据。这种方法的好处是它可以将网站与数据收集分离,这样当网站更改格式时,您只需更改XSLT即可匹配,无需其他任何操作。