需要的建议:使用.NET屏幕抓取网页

时间:2009-06-16 18:22:36

标签: .net screen-scraping

我需要为即将开始的项目提供建议。

简而言之,我的应用程序必须访问某个足球网站,下载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。你认为这会改善表现吗?

我们将非常感谢任何建议或意见!

3 个答案:

答案 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即可匹配,无需其他任何操作。