Phantomjs仅在page.open中加载静态内容
我的情况是使用phantomjs只加载静态内容(我们使用“wget”获得的内容),然后运行一些javascript来确定页面的“标题”。我不需要加载整个页面就可以知道它的标题,对吗 尝试使用:Phantomjs仅在page.open中加载静态内容,phantomjs,headless-browser,Phantomjs,Headless Browser,我的情况是使用phantomjs只加载静态内容(我们使用“wget”获得的内容),然后运行一些javascript来确定页面的“标题”。我不需要加载整个页面就可以知道它的标题,对吗 尝试使用: page.settings.resourceTimeout = 0; page.settings.javascriptEnabled = false; page.settings.loadImages = false; page.settings.localToRemoteUrlAccessEnab
page.settings.resourceTimeout = 0;
page.settings.javascriptEnabled = false;
page.settings.loadImages = false;
page.settings.localToRemoteUrlAccessEnabled = false;
page.settings.webSecurityEnabled = false;
但在本例中,我的document.title无法工作,因为我的JS被禁用。有道理
有没有办法只加载静态内容?差不多
page.open(uri,static=true,…
根据需要,您可以在page.onResourceRequested
内调用request.abort()
。此处给出的停止加载所有css的示例为:
page.onResourceRequested = function(requestData, request) {
if ((/http:\/\/.+?.css/gi).test(requestData['url']) || requestData['Content-Type'] == 'text/css') {
console.log('The url of the request is matching. Aborting: ' + requestData['url']);
request.abort();
}
}
此外,page.onLoadStarted是确定标题的竞争者,但我也想对正文中的一些div节点进行一些分析。请帮助。@Devaroop我理解您的问题,因为您希望加载HTML内容,但不加载任何其他资源,如图像、外部Javascript、外部CSS、字体等。如果是,这就是用途-添加此功能的情况。(如果要停止所有操作,请中止除第一个请求之外的所有请求)同意。这只给了我们筛选css、js和我们可以猜测的任何其他调用的权限。可能还有其他调用,如php、java等,无法确定。我想要一个模拟“wget”的调用behavior.make sense?@Devaroop如果你想模仿wget行为,我已经给了你这个答案(除了它在浏览器中,所以内联JavaScript仍然会运行,并且可以修改文档体-但是不会再进行网络请求)。通过中止所有请求,你可以停止加载任何其他内容(包括AJAX,我猜这就是你所说的“php、java等”的意思?)如果这仍然不能回答问题,也许你可以解释为什么你不简单地使用wget?与wget相比,PhantomJS是一个资源怪物。