gpt4 book ai didi

PhantomJS:抓取多个 URL 时的空白页面

转载 作者:行者123 更新时间:2023-12-04 05:40:03 24 4
gpt4 key购买 nike

我编写了一个 PhantomJs 脚本,通过递归链接对 page.open() 的调用来抓取多个 URL。 (下面的代码片段。)这最多适用于 3 或 4 个 URL,但是对于大量 URL,我只会得到空白页面。空白是指 document.URL 包含“about: blank”,而屏幕截图仅显示空白的白色背景。我还注意到,随着 phantomJs 继续处理大量 URL,它的内存使用量不断增加。是否有什么具体的我需要做的释放用于呈现前一页的任何内存?

其他人看到过这个问题吗?是否可以扩展 PhantomJs 来抓取更多的 URL(比如 100 个)?

谢谢
罗希特

用于抓取多个 URL 的递归代码片段:

srcProducts = [{'url':'http://...' }, { 'url': 'http://...' },...];
destProducts = [];
gRetries = 0;
process();

function process() {
if (srcProducts.length == 0) {
// Output to file
phantom.exit();
} else {
product = srcProducts.pop();

page = require('webpage').create();
page.open(product['url'], onOpen);
}
}

function onOpen(status) {
// check status
// scrape info into product

destProducts.push(product);
process();
}

最佳答案

有人很友好地在 google 群组上回答了这个问题。解决方案是在使用完页面对象后调用 page.release() 。

https://groups.google.com/forum/?fromgroups#!topic/phantomjs/lquzLFvZtrA

关于PhantomJS:抓取多个 URL 时的空白页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com