如何在PhantomJS中使用jQuery?

时间:2014-07-14 18:33:54

标签: phantomjs

我正在尝试使用PhantomJS抓取网站,我需要在网站上执行一些操作。我想使用jQuery。我已经创建了以下代码

page.open(url, function (status)
    {
        if (status === "success")
        {
            page.injectJs('jquery-1.11.1.min.js');

            var links = page.evaluate(function()
            {
                 $jq = window.jQuery;
                 $jq.noConflict();

                 var links = [];

                 $jq('a').each(function()
                 {

                 });

                 return links;
            }); 

        }
    });

有时会崩溃。

  

TypeError:' undefined'不是一个功能(评估   '的jQuery('。有些-DIV-一个最scrapering页&#39)

可能jQuery已经在这个网站上使用,这是一个与我不同的版本。我该如何解决?我必须使用普通的JS吗?

1 个答案:

答案 0 :(得分:0)

要检查页面是否已有jQuery,请使用window.jQuery

if (!window.jQuery) {  
    // jQuery is not loaded
    page.injectJs('jquery-1.11.1.min.js');
}

这样,如果页面已经加载了jQuery,那么你的脚本不会再尝试加载它。否则,它将执行page.injectJs('jquery-1.11.1.min.js')