如何从Web服务器请求简化(简化)版本的网页

时间:2014-03-11 16:49:15

标签: c# html http request response

问:是否可以在使用C#进行请求(使用yahoo.com/cnn.com等服务器)时操作http请求标头或使用C#中的任何其他技术,以便返回的网页文本(流)&# 39; s大小可以大大减少 - 一个简化的网页没有所有其他额外的脚本/图像/ CSS?或者甚至更好,我可以只请求我感兴趣的网页的子部分只下载?我只需要尽可能地将响应页面最小化以便可以在以后处理页面之前尽快下载

3 个答案:

答案 0 :(得分:0)

尝试调整HTTP请求标头中的某些浏览器功能,请参阅here。虽然您对此的响应因站点而异,但这是客户端告诉服务器它能够显示和处理的内容。

答案 1 :(得分:0)

无法通过C#或任何其他语言要求服务器在服务器支持之外呈现不同数量的数据。即没有通用机制告诉服务器“不渲染内联CSS / JS /图像”或“不渲染广告内容”,甚至“只是给我文章文本”。

许多网站都有“移动”版本,这些版本的页面尺寸可能会更小,但可能包含与桌面版本不同或更少的信息。您应该可以通过选择不同的网址或指定与手机相对应的“用户代理”来请求移动版本。

有些网站提供数据作为RSS提要或其他一些方法来自动获取数据 - 您可能需要与每一方进行核对。

如果您知道要下载的页面的特定部分,则可以使用range header进行GET请求,但动态页面可能不支持。

附注: - 大多数网站将CSS / JS作为单独的文件服务。 - 确保检查许可证以确定每个站点是否有任何限制。

答案 2 :(得分:0)

这实际上取决于它提供的站点和服务以及它具有的配置。可能有助于寻找的事情(不是完整的清单):

  1. API公开,可让您直接访问数据。例如。 XML或JSON类型响应。
  2. 压缩 - 您的客户端必须通过适当的HTTP标头请求,例如Accept-Encoding: gzip, deflate,不用说知道如何相应地处理响应。 SO thread on doing this in C#
  3. 如果网站支持此类内容,请求移动版网站。网站如何公开这样的版本实际上取决于网站。有些会在其网址前加m.,有些会回复User-Agent字符串,有些会使用其他策略......
  4. 使用HTTP Range标头。还取决于网站是否支持它。 MSDN link for .NET API