提取HTML数据而不下载整个网页

3
我该如何从网页中提取HTML表格的数据,而无需下载整个网页HTML?
我使用Delphi XE2中的TWebBrowser和TEmbededWB加载页面,然后获取Table元素并解析它。但是网页非常重,在我的循环中(约60秒),我无法正确地获取数据。
谢谢!

4
您可以通过流下载它,并且丢弃您不需要的比特,这比将整个内容加载到内存中更加有效。然而,除非服务器支持,通常网络服务器不支持仅请求特定位。 - mellamokb
3
即使这样,你也需要知道表格的起始和结束字节。 - Quentin
3
您的最终用户是否也需要查看网页?如果不需要,可以使用Indy HTTP客户端(TIdHttp)组件,并执行GET或POST请求。这将以流形式将其传递给您,而无需浏览器解析和呈现HTML的开销。 - Sam M
Synapse也是一个不错的HTTP库。您的问题不太清楚。您所说的网页是什么?只有根HTML页面吗?还是数百个文件,包括HTML和CSS样式、JS程序、Flash广告、HTML子框架、音乐、视频等等?HTTP协议允许您仅下载文件的一部分,从字节#12345到字节#54321,但1:并非所有服务器都允许此操作,2:如果没有下载页面,您如何知道需要哪些字节?因此,您仍然需要下载主要的HMTL文件。但是,您可以避免下载所有或大多数辅助文件。 - Arioch 'The
谢谢,我问了另一个问题。[http://stackoverflow.com/questions/11915903/convert-string-form-idhttp-get-to-ihtmldocument2-in-delphi#comment15865758_11915903] - SadeghAlavizadeh
显示剩余2条评论
1个回答

1

伙计,

由于HTML协议的语言是解释性的而不是编译性的,因此浏览器或任何类似浏览器的实现都需要从服务器下载整个内容。您可以阅读浏览器如何工作Surfin' Safari来了解更多信息。我认为没有一种有效的方法可以做到你所要求的,但在我看来,一种非常有效的方法是像mellamokb所说的那样。但是,它仍然会下载整个内容。

敬礼


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接