読者です 読者をやめる 読者になる 読者になる

【CasperJS】eachThenとthenOpenで順次スクレイピングしてファイル出力する

今回やりたかったのはURLをリスト化しておいて順次サイトにアクセスしてレスポンスを取得するということ。当初はopenとthenを複数書いていたけどURLの一覧を別ファイル化したかったので今回やりたい経緯となった。ついでに取得したHTMLをファイルに保存する形にした。 

var casper = require('casper').create();
var fs = require("fs");

var urls = [
    {id:1, url:"http://example.com"},
    {id:2, url:"http://example2.com"},
    {id:3, url:"http://example3.com"},
];

casper.start();
casper.eachThen(urls, function(response) {
    var id = response.data.id;
    this.thenOpen(response.data.url, function(response) {
        this.wait(3000, function() {
            fs.write("/path/to/" + id + ".html", casper.getHTML());                                                                                                                                                
        });
    });
});

casper.run();

以上です