2009-06-16 79 views
2

我需要一个关于我即将开始的项目的建议。需要建议:使用.NET屏幕抓取网页

简而言之,我的应用程序必须去某个足球网站,下载HTML并提取必要的数据。

这是我迄今所做的:

:: 1)到了一定的足球网站(前http://www.livescore.com/default.dll?page=england),并使用Web客户端下载HTML。

:: 2)使用SgmlReader的HTML转换成XML

:: 3)使用XmlDocument的检索我要找的数据。通常,这涉及到:

:::::::使用的getElementsByTagName 3.1)检索节点)

::::::: 3.2)()(前的getElementsByTagName( “TR”)。循环遍历由GetElementsByTagName()方法返回的节点列表

是否有更好的方法来做我想做的事情?

我在想LINQ to XML。你认为这会提高性能吗?

任何建议或意见将不胜感激!

回答

5

只需使用HTML Agility Pack! http://www.codeplex.com/htmlagilitypack

通过这种方式,您可以使用XPath查询文档以获取所需的节点。您甚至可以使用Firefox的插件Firebug来帮助您构建XPath查询

+0

我想我会使用HtmlAgilityPack,但是我发现的所有内容都是3个非常基本的例子以及糟糕的API引用。你知道更丰富的文档吗? – 2009-06-18 20:53:19

0

使用诸如these guys之类的服务为您完成了大部分工作。您也可以使用免费服务,例如Dapper。我相信您可以导出不同格式的数据,但我不知道您是否可以实时获取数据,但可能会有延迟。

如果您不想使用第三方解决方案内部编写所有内容,可为您节省时间和金钱。

0

将数据转换为XML后,可以使用XSLT将其转换为更简单的一组XML,并且更适合您的目的。从那里,您可以使用LINQ to XML从XML中获取所需的数据。这种方法的好处是它将网站从数据收集中分离出来,这样当网站更改其格式时,您可以简单地将XSLT更改为匹配,而不必再触及其他任何内容。