【问题标题】:Executing 1000+ pages/min in a browser environment在浏览器环境中执行 1000+ 页/分钟
【发布时间】:2011-02-01 15:08:33
【问题描述】:

我将如何下载和执行(即评估 Javascript、构建 DOM)每分钟超过 1000 个 XHTML 文档?

一些轮廓/限制:

  • 要下载的 URL 位于不同的服务器上。
  • 我需要遍历 - 并且最好修改生成的 DOM。
  • 对渲染图形不感兴趣。
  • 带宽不是问题。
  • 过多的硬件并行化将是一个更大的问题。
  • 生产环境是.NET。

我不太关心下载页面。我估计实际执行页面是一个瓶颈。 .NET 有一个内置的 Web 浏览器对象,但我不知道它是否会在单台机器上扩展。此外,.NET 不是绝对要求,但它会使这里的集成更容易。

我将不胜感激任何有关以下方面的 cmets/指针:

  • 哪种浏览器 API 最适合执行此操作?
  • 浏览器是正确的方式吗?也许有一种更轻量级的方式来执行最重要的部分 Javascript(...但不提供 DOM)?
  • 哪些现有产品/服务(无论是开源的还是商业的)可以完成这项任务?
  • 我预计每分钟大约可以在单台机器上处理多少页(3 毫秒 Chrome 渲染商业版)?
  • 可能会遇到的任何陷阱...

提前谢谢你,

/大卫

【问题讨论】:

  • 从购买一台非常非常大的计算机开始 :-) 如果您不在浏览器中进行操作,则很难确保页面正常运行;任何 JavaScript 代码都非常认为它可以进行正常的 DOM 操作。
  • 哦,吞吐量肯定取决于这些“页面”的指标以及它们上 JavaScript 代码的性质。
  • 这是你偶尔运行的东西,比如负载测试器,还是每天都在运行?
  • 你想在这里完成什么?
  • 它将连续运行。最终目标:提取一些节点的文本内容。对于有 AJAX 和公司的网站,我需要确保所有内容都在那里,因此需要实际“执行”页面。

标签: javascript .net dom webbrowser-control


【解决方案1】:

看看其中一个 .NET 的无头浏览器 - 它们会比 BrowserControl 更快,因为它们不需要呈现图形视图。

我不知道这是否可以让你每分钟执行 1000 页,但应该比控件快得多。

Here 是一。

Here 是一篇关于将 HtmlUnit 用作无头浏览器的博文。

还有an SO question 关于无头浏览器。

【讨论】:

  • 那么在这一点上 1000 页/分钟只是计算机能力的问题。它应该能够扩展到多台服务器。
  • +1 我目前使用 HtmlUnit 转换为 .Net 程序集,使用 IKVM 从基于 javascript 的 Web 查询界面中分页报废数百个查询。每小时维护 1000 个页面将很困难,而且我不确定它对修改 DOM 有多少控制,但除此之外,它是在这种规模上模仿 javascript 的唯一可靠解决方案。 WATIN 和 Selenium 等工具要么太慢要么不准确。
【解决方案2】:

我有一个在 WinForms 中实现的应用程序,它在大约 5 分钟内处理约 7,800 个 URL(下载 URL、解析内容、查找特定的数据片段,如果找到它要查找的内容,则对其进行一些额外的处理页面。

此特定应用程序过去需要 26 到 30 分钟才能运行,但通过将代码更改为 TPL(.NET v4.0 中的任务并行库),它只需 5 分钟即可执行。计算机是戴尔 T7500 工作站,具有双四核 Xeon 处理器 (3 GHz),运行 24 GB RAM 和 Windows 7 Ultimate 64 位版本。

我只是在 Parallel.ForEach() 循环中使用 WebClient、Stream 和 StreamReader 对象,而且速度非常快。

可能不是您正在寻找的确切解决方案,但与我在这里看到的大多数其他帖子不同,这实际上确实“处理 1,000 页/分钟”[以及更多]。

深思……

【讨论】:

    【解决方案3】:

    我认为 node.js 可以做很多你想做的事,而且如果你没有与 .net 解决方案结婚的话,它可以做得很快。它肯定有一个 dom 实现。

    【讨论】:

      猜你喜欢
      • 2020-07-28
      • 2014-04-17
      • 2014-01-21
      • 1970-01-01
      • 2016-06-24
      • 2014-07-20
      • 2019-12-25
      • 2014-11-24
      • 2015-09-08
      相关资源
      最近更新 更多