如何让pjscrape打印出文件中的当前URL?

时间:2013-08-05 05:38:51

标签: phantomjs

我正在使用pjscrape来抓取网站生成的动态网页中的内容。请参阅下面的代码。 我无法弄清楚我需要做什么才能打印出转储到文件的json变量中的抓取页面的url。我已经尝试了各种方法 - 包括document.url等(参见下面代码中注释掉的第3-6行)。但是,我无法弄清楚如何获取urlFound变量以获得正确的值。当然,答案可能是简单的,但它可以避开我。这样做的其他任何方式?救命啊!

var scraper = function() {
return {
    //urlFound:$(window.location.href),
    //urlFound: $(this).window.location.href,
    //urlFound: _pjs.toFullUrl($(this).attr('href')),
    //urlFound: _pjs.toFullUrl($(this).URL),
    // Heck - how to print out the url being scraped???
    name: $('h1').text(),
    marin: _pjs.getText($("script:contains('marin')"))
}
};

pjs.config({
    // options: 'stdout', 'file' (set in config.logFile) or 'none'
    log: 'stdout',
    // options: 'json' or 'csv'
    format: 'json',
    // options: 'stdout' or 'file' (set in config.outFile)
    writer: 'file',
    outFile: 'scrape_output.json'
});

pjs.addSuite({
    url: 'http://www.mophie.com/index.html',
    moreUrls: function() {
       return _pjs.getAnchorUrls('li a');
    },
    scraper: scraper
});

2 个答案:

答案 0 :(得分:0)

jquery上的选择器不需要window.location.href。不确定如何访问pjscraper的内部网址,但将代码更改为有效:

var scraper = function() {
    return {
        urlFound: window.location.href,
        name: $('h1').text(),
        marin: _pjs.getText($("script:contains('marin')"))
    }
};

答案 1 :(得分:0)

或者您可以使用document.URL ...将其另存为变量,然后使用How to read and write into file using JavaScript将其写入文件