使用 C# 通过更改源代码高效地从网页中提取数据
本文关键字:网页 数据 提取 高效 源代码 使用 | 更新日期: 2023-09-27 18:37:16
我已经使用 System.net.Webclient 类将代码放在一起,从网页中提取源代码,然后我使用字符串搜索来获取特定信息。这本身工作正常,但我的问题是源代码每隔几秒钟就会更改一次,我希望我收到的数据会相应地更改。我知道我可以简单地设置一个循环来重复这个过程,但不幸的是,我当前的代码需要整整 2.7 秒才能完成,我想避免这个大的滞后时间。此外,如果可能的话,我想避免向网页发送请求垃圾邮件。我在考虑一个保持打开状态的流读取,这样就不必发送多个请求,但我不完全确定如何做到这一点......
因此,总而言之,有没有一种方法可以使用 System.Net 命名空间从网站中提取更新信息,既快速又避免向网站发送请求垃圾邮件?
恐怕HTTP协议不适合您的实时数据刷新要求。除了定期轮询HTTP请求之外,您无法知道服务器上的数据是否更改并获取此新数据。
例如,WebSocket技术更适合这些场景。当然,数据提供程序必须实现它,以便客户端可以订阅此实时源。
还有另一种通过 HTTP 协议实现此功能的方法。它使用 iframe 来实现长轮询。下面是一个示例。这个想法是服务器使用分块传输编码并将连续的数据流发送到套接字。客户端订阅此流,并能够收到服务器上发生的更改的通知。再一次,这是一项必须由服务器端实现的技术,以便您作为客户端可以利用它。
如果服务器提供的只是通过HTML页面提供的数据,那么您注定要通过用HTTP请求锤击此服务器来进行屏幕抓取,直到您的IP地址被列入黑名单并被拒绝访问。