使用无头浏览器进行100,000次页面渲染,aws每秒最大CPU数量

时间:2017-11-17 15:36:30

标签: python amazon-web-services selenium web-scraping chromium

我正在进行抓取项目,需要使用浏览器在我访问的网站上加载javascript。

如果仅使用http,150/second可以使用m4.large。哪个有2 cpus。在使用无头镀铬的初始测试中,4 / second周围的速度要慢得多,而且瓶颈通常是CPU而不是RAM。对于许多网页而言,基本的http很好,但越来越多的不是单页应用程序等。

有没有人有类似的经历?你有什么能够实现的?您使用的堆栈是多少,例如python, selenium, headless chrome and multiprocessing。您是否必须更改chrome的配置?

1 个答案:

答案 0 :(得分:2)

根据Chrome的devtools中的“性能”标签,Stack Overflow上的这个特定页面需要1.2秒才能在我的机器上加载:

Performance tab

你可以通过CPU使用率或挂钟时间来解决这个问题,但重点是需要一段时间。

在这种情况下,我会在浏览器中加载一次页面以了解访问的资源,然后使用除浏览器之外的负载测试工具执行这些资源。

Copy All as cURL

天真地执行此curl命令 - 首先通过将;替换为&来并行化 - 在我的机器上需要1.8秒。但关键是你只想点击服务器,而不是解释任何HTML,CSS,JavaScript或图像。

但是,如果您想抓取网络并查看每个网页加载时发生的事情,那么您可以查看该页面并决定下一步该去哪里,没有太多事情要做除了无头浏览器。真正的生产网络爬虫具有更大的机器预算,并且可能使用巧妙的技术来避免在解码图像和布置CSS时浪费CPU。