什么是以编程方式从其他网站获取数据的最佳方式? “亚马逊提供例如”

时间:2009-03-19 15:51:53

标签: .net html web

我想构建一个小应用程序,它将访问某些网站并从这些网站读取特定数据,我希望应用程序是通用的,因为我可以在以后想要的任何网站上运行。 所以有一种很好的方法可以使用.net来解析网站。

6 个答案:

答案 0 :(得分:2)

我被告知在.NET中进行屏幕抓取的好工具包是HTML Agility Pack

你应该知道,如你所描述的那样,使屏幕抓取解决方案稳定或通用非常困难。

另请参阅此问题的其他答案:Screen scraping: regular expressions or XQuery expressions?

答案 1 :(得分:1)

虽然不是真正适用于您的方案,但请查看Watin。我假设你想要做的就是屏幕刮擦。 Watin非常容易上手,可以帮助您免于自己编写大量的解析代码。

答案 2 :(得分:1)

使用wget for windows和正则表达式应该做你想要的。您可以使用wget获取源代码,然后使用正则表达式过滤掉所有代码,或者如果它有模式,则获得您正在寻找的内容。

答案 3 :(得分:0)

假设您尝试获取的数据无法通过RSS或其他类似方式获得,则听起来您将要寻找页面刮刀。谷歌搜索“.NET HTML scraper”返回有关该主题的大量信息。

答案 4 :(得分:0)

阅读为人类阅读的网站始终是一个问题。我这样做了好几年了,这从来都不容易。从XML或RSS中寻找其他数据所需的数据总是一个好主意。

请始终牢记网站布局可能会发生变化,您必须调整应用程序。但主要问题是在页面上找到您需要的信息。我们总是需要很多字符串方法,比如contains,left,mid,indexOf。

HTML是某种XML,因此XMLParser可能会起作用。但浏览器总是更宽容一些,并且会接受并显示许多格式不佳的页面。

答案 5 :(得分:0)

如果网站没有提供API,您将最终“抓取”网站。虽然这当然是可能的,但它非常脆弱。如果网站发生变化,您用来“查找”所需信息的逻辑就会中断。拥有可以找到特定信息的通用应用程序是一个很好的概念,但很难可靠地实现。