CasperJS返回base64字符串作为图像URL

时间:2016-03-02 19:44:57

标签: javascript jquery phantomjs screen-scraping casperjs

我使用CasperJS抓取网站,我遇到了一个有趣的问题。

在Caspers的评估函数中,我想从图像<img>元素中提取src属性。以下是将在我的evaluate函数中执行的代码:

function crawl(){
    var product = {};
    try{
        product.title = jQuery('#title').html();//Get title
        product.price = document.getElementsByClassName("price")[0].innerHTML;//Get price

        var imageSrc = jQuery("#next").attr("src")
        product.image =imageSrc;
        }
    catch(e){
    }
    return JSON.stringify(product);
}

以下是在Casper中处理evaluate函数的方法:

casper.then(function(){
        scrappedProductInfo = this.evaluate(crawl);//Get info
        console.log("Page crawled");
        utils.dump(scrappedProductInfo);
    });

当我执行我的CasperJS脚本时,从返回对象的image属性中的evalute()函数而不是图像链接中获取图像的base64表示:

\ndata:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAEKAKkDASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAIFAQQGAwf/xAA+EAACAgEBBAUICAQHAQAAAAABAgADEQQFEhMhFDFBVHEGM1FSkZOxwRUiMmGBkqHRI0Jy8CQ1RGKi4fFz/8QAFwEBAQEBAAAAAAAAAAAAAAAAAAECA//EACARAQEBAQACAgIDAAAAAAAAAAABEQIS.....

当我在Chrome中打开同一页面并在Chrome控制台中执行crawl功能时,我将src作为链接而不是base64字符串。当我右键单击元素并检查它时,我可以清楚地看到URL而不是base64编码的字符串。

有什么建议吗?

0 个答案:

没有答案