Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么PhantomJS不抓取它重定向到的页面?_Javascript_Web Scraping_Phantomjs - Fatal编程技术网

Javascript 为什么PhantomJS不抓取它重定向到的页面?

Javascript 为什么PhantomJS不抓取它重定向到的页面?,javascript,web-scraping,phantomjs,Javascript,Web Scraping,Phantomjs,我在刮 它首先显示一个空白的白色页面,在该页面中有一些模糊的JS代码 该代码自动发送POST请求,然后加载实际页面 我有这个代码来跟踪重定向页面,但它不工作 var page; var myurl = "http://www.asx.com.au/asx/markets/optionPrices.do?by=underlyingCode&underlyingCode=XJO"; var renderPage = function (url) { page = require('

我在刮

它首先显示一个空白的白色页面,在该页面中有一些模糊的JS代码

该代码自动发送POST请求,然后加载实际页面

我有这个代码来跟踪重定向页面,但它不工作

var page;
var myurl = "http://www.asx.com.au/asx/markets/optionPrices.do?by=underlyingCode&underlyingCode=XJO";

var renderPage = function (url) {
    page = require('webpage').create();

    page.onNavigationRequested = function (url, type, willNavigate, main) {
        if (main && url != myurl) {
            myurl = url;
            console.log("redirect caught")

            // GUILTY CODE
            renderPage(url);
        }
    };

    page.open(url, function (status) {
        if (status === "success") {
            console.log("success")
            page.render('yourscreenshot.png');
            phantom.exit(0);
        } else {
            console.log("failed")
            phantom.exit(1);
        }
    });
}

renderPage(myurl);
它只输出数据

success
redirect caught

查看我的代码,为什么
有罪代码
部分未被执行。。。为什么在捕获重定向后不调用
renderPage(url)

据我所知,phantomJS并不能很好地处理重定向。这可能是你的问题。您可能想用另一种方式来测试这一点。或者,您可以使用其他浏览器执行这些测试以进行确认。看看这个git问题,看看我的意思