从vb.net中的网站检索动态文本(VS2008)

时间:2009-11-23 16:19:32

标签: vb.net visual-studio-2008 web-scraping

我希望能够从网页中检索动态数据(股价)。我开始通过检索html代码,然后才意识到,因为它是实时数据,所以html代码几乎没用。虽然我希望捕获特定数据,但我想要的是处理我指定的网页,该网页将返回该网站的文本,而不是HTML代码。基本上整个页面的复制和粘贴会很棒.. 任何想法都会非常感激!

3 个答案:

答案 0 :(得分:1)

解析HTML的'屏幕刮痧'是在21世纪初......我会做的是在Amazon's Mechnical Turk上阅读。您可以开发一个排队的架构,您可以在此向Mechnical Turk服务提交URL。该服务会自动将这些工作分配给用户,然后用户将执行复制和粘贴您需要的有价值股票报价信息的脏任务。世界各地的用户都会焦急地等待将下一个URL发送到他们的Mechanical Turk收件箱...固定机会为您的应用程序复制/粘贴另一个股票价格。当然,可能需要几分钟来更新你的价格,但是,嘿,他们将被世界各地的真人解析!想想可能性!

答案 1 :(得分:0)

嗯,HTML包含网站的文本,因此您“只需”解析HTML。


编辑:如果数据不在HTML中但是动态加载,则情况不同。我可以看到,你有两个选择:

  1. 了解数据的加载方式(即读取页面上的JavaScript)。如果通过某些Web服务更新,则可以在程序中查询相同的Web服务。
  2. 使用网络浏览器获取数据,然后获取页面的动态 HTML树。也许WPF Webbrowser control可以帮助你,但我不确定,因为我自己从未这样做过。

答案 2 :(得分:0)

是否有可能找到以即用型格式提供的相同数据,而不是为其抓取HTML?看起来可能有股票报价的公共网络服务。


例如:快速搜索“Stock price webservice”http://www.webservicex.net/stockquote.asmx;一种易于在.NET中使用的ASMX Web服务。

在Visual Studio项目中,您应该通过“添加Web引用”命令添加对此服务的引用;您给出的对话框取决于您的项目是针对.NET 2.0还是.NET 3.0 / 3.5。

我添加了对名为StockPriceProxy的服务的引用:

Public Function GetQuote(ByVal symbol As String) As String
    Using quoteService As New StockPriceProxy.StockQuote
        return quoteService.GetQuote(symbol)
    End Using
End Function