Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 执行1000+;浏览器环境中的页数/分钟_Javascript_.net_Dom_Webbrowser Control - Fatal编程技术网

Javascript 执行1000+;浏览器环境中的页数/分钟

Javascript 执行1000+;浏览器环境中的页数/分钟,javascript,.net,dom,webbrowser-control,Javascript,.net,Dom,Webbrowser Control,我将如何下载和执行(即评估Javascript、构建DOM)每分钟超过1000个XHTML文档 一些要点/限制: 要下载的URL位于不同的服务器上 我需要遍历并理想地修改生成的DOM 对渲染图形没有兴趣 带宽不是问题 过度大规模的硬件并行化将是一个更大的问题 生产环境是.NET 我不太关心下载网页。我估计实际执行页面是一个瓶颈。NET有一个内置的Web浏览器对象,但我不知道它是否可以在一台机器上扩展。另外,.NET不是绝对的要求,但它会使这里的集成更容易 如果您对以下方面有任何意见/建议,我

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

一些要点/限制:

  • 要下载的URL位于不同的服务器上
  • 我需要遍历并理想地修改生成的DOM
  • 对渲染图形没有兴趣
  • 带宽不是问题
  • 过度大规模的硬件并行化将是一个更大的问题
  • 生产环境是.NET
我不太关心下载网页。我估计实际执行页面是一个瓶颈。NET有一个内置的Web浏览器对象,但我不知道它是否可以在一台机器上扩展。另外,.NET不是绝对的要求,但它会使这里的集成更容易

如果您对以下方面有任何意见/建议,我将不胜感激:

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


/David

看看.NET的一种无头浏览器-它们将比
浏览器控件
更快,因为它们不需要呈现图形视图

我不知道这是否允许您每分钟执行1000页,但应该比控件快得多

这是一个

是一篇关于使用HtmlUnit作为无头浏览器的博客文章


关于无头浏览器。

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

我有一个用WinForms实现的应用程序,它可以在大约5分钟内处理7800个URL(下载URL,解析内容,查找特定的数据段,如果找到它要查找的内容,它会在该页面上做一些额外的处理)

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

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

可能不是你想要的确切解决方案,但与我在这里看到的大多数其他帖子不同,这实际上是“每分钟处理1000页”[以及更多]


思考的食粮…

从购买一台非常非常大的计算机开始:-)如果你不在浏览器中使用,那么要确保页面正常工作将非常困难;任何JavaScript代码都很可能假设它可以进行正常的DOM操作。哦,吞吐量肯定会取决于这些“页面”的指标以及它们上JavaScript代码的性质。这是不是你偶尔会运行的东西,比如负载测试仪,或者它每天都在运行?你想在这里完成什么?它会持续运行。最终目标:提取一些节点的文本内容。对于使用AJAX和company的网站,我需要确保所有内容都在那里,因此需要实际“执行”页面。在这一点上,1000页/分钟只是计算机能力的问题。它应该能够扩展到多个服务器。+1我目前使用HtmlUnit,使用IKVM将其转换为.Net程序集,从基于javascript的web查询界面上删除数百个查询。每小时维护1000个页面是很困难的,我不确定它对修改DOM有多大的控制,但除此之外,它是在这种规模上模仿javascript的唯一可靠解决方案。像WATIN和Selenium这样的工具要么太慢,要么不准确。