我将此代码作为test.js:
var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'Mozilla/5.0';
//page.onResourceRequested = function(request) {};
//page.onResourceReceived = function(response) {};
page.open('http://www.skadden.com',function(status){
console.log("Status: " + status);
phantom.exit();
});
为什么Phantom会在我运行这些命令时间歇性地挂起?
phantomjs --debug=true --web-security=false --load-images=true test.js
挂起 [DEBUG]网络 - 资源请求错误:203(“错误下载http://www.skadden.com/sites/all/themes/skadden_main/images/menu_links.png - 服务器回复:未找到”)网址:“http://www.skadden.com/sites/all/themes/skadden_main/images/menu_links.png”
phantomjs --debug=true --web-security=false --load-images=false test.js
有时会工作,但也会挂在 [DEBUG] CookieJar - 已保存“has_js = 1; domain = www.skadden.com; path = /”
取消注释请求和接收的处理程序会导致它不经常挂起(不知道为什么),但它仍然挂在相同的调试行。与用户代理混淆,甚至将其设置为空白也有帮助,但有时仍会挂起。显然,就使用处理程序,更改用户代理以及打开和关闭幻像cli args而言,可以尝试许多变体。最终,我找不到100%值得信赖的组合。这有点令人沮丧。任何帮助都会非常感激,因为我真的需要抓取这个网站,目前我不能。