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