我使用PhantomJS和CasperJS来截屏之类的。我面临的问题是,它占用了太多的CPU,这让我觉得它可能没有那么大的可扩展性。有没有什么方法可以降低CPU的使用率。我能想到的一些是:
1)关闭镜像加载
2)关闭js加载
另外,我想知道对于抓取的目的,python是否比phantom更轻便(就CPU使用率而言)。
发布于 2013-09-30 23:30:50
为什么仅限CasperJS / PhantomJS?你是否正在抓取那些加载了JavaScript内容的网站?任何不能运行完整的webkit浏览器的工具都比运行完整的webkit浏览器的工具更轻量级。
正如评论中提到的,您可以在linux系统上使用wget或curl将网页转储到文件/ stdout。有很多库可以处理和解析原始的超文本标记语言,比如用于NodeJS的cheerio。
还想要某种形式的脚本吗?因为您提到了python,所以有一个名为Mechanize的工具可以在不运行webkit的情况下执行此操作。它不像Casper / Phantom那样强大,但它允许你以更小的占用空间做很多相同的事情(填写表单,点击链接等)。
发布于 2019-01-08 12:36:45
5年半后,我认为你不再有这个问题了,但如果其他人遇到这个问题,这里有解决方案。
抓取完成后,通过键入browser.quit()退出浏览器,browser是您设置的变量的名称。
https://stackoverflow.com/questions/18558714
复制相似问题