PhantomJs刮网站,无法得到我需要的东西

时间:2015-07-16 23:50:23

标签: javascript web-scraping phantomjs

我正在尝试学习如何使用PhantomJS来抓取网站内容。该库似乎非常有趣,并且该示例提供了非常自我解释。 我用BBC的例子从BBC网站上提取了一份食物清单。

现在我有兴趣从Skystore网站上获取电影列表,但我无法弄清楚如何做到这一点。

我已经包含了以下示例。基本上我总是包含evaluate函数,PhantomJS会生成大量错误,脚本会停止。我必须阻止该过程的唯一方法是按ctrl + c

关于它可能出错的任何想法?

var page = require('webpage').create();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';

var fs = require('fs');

page.open('https://www.skystore.com/product/fifty-shades-of-grey/f37915c2-ed61-4c3b-bb97-f47b4bb34d40', function (status) {
    console.log(status);
    page.includeJs('https://www.skystore.com/assets/js/app-322d1ce3cd97ff8828ad1f552708921ab587a6df.js', function (status) {

    page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
        page.includeJs("https://www.skystore.com/assets/vendor/requirejs/require.js", function (status) {
            page.includeJs("https://www.skystore.com/assets/vendor/angular/angular.min.js", function (status) {
            console.log(status);
            var test = page.evaluate(function(){

                //page.evaluate();
                return document;
            });

            console.log(test);
            console.log(test.innerHTML);
            console.log(test.documentElement.innerHTML);

               // setInterval(function(){
                    console.log(page.content);
                    //page.evaluate();

                   //fs.write('home.html', page.content, 'w');
               // }, 2000);

                phantom.exit()

            });     
            });
        });
    });
});

0 个答案:

没有答案