写的第一个爬虫……

来源:互联网 发布:淘宝摄影棚所需要器材 编辑:程序博客网 时间:2024/05/29 03:13
var version="20150820";
var injectPoint="http://www.p2peye.com/hangqing/";
var fs = require("fs");




phantom.outputEncoding="GBK";
var casper = require('casper').create({
    viewportSize: {
        width: 1920,
        height: 1080
    },
    logLevel: "debug",
    pageSettings: {
        loadImages:  true,
        loadPlugins: false
    },
    clientScripts: ["jquery-1.9.1.js"]
});
casper.start();
var links=[],
    data=[];
casper.thenOpen(injectPoint,function(){
//获取页数
var pages=this.evaluate(get_pages);
casper.echo("页数:"+pages.length);
//pages=pages.slice(0,1);
 
//构建产品链接库
casper.then(function(){
casper.each(pages,fetch_links);  
});
casper.then(function(){
casper.echo("网址个数:"+links.length); 
});
 
//数据抓取
casper.then(function(){
var i=1;
casper.echo("\n抓取开始:……");
casper.each(links,function(self,link){
self.wait(100).thenOpen(link,function(){
       data.push(self.evaluate(data_capture));
casper.echo("第"+i+"条  "+link);
i++;
      }); 
})
});
//数据存储
casper.then(function(){
casper.echo("抓取成功:共"+data.length+"条");
casper.echo("\n开始存储:……");
fs.write("./product_data.json",
            JSON.stringify(data),
"w"
        );
casper.echo("存储成功!!!");
});

});


//数据抓取
function data_capture(){
var data_one={};
var data_con_title=$(".mod-l h1.title");
var baseinfo=$(".mod-l .baseinfo p");
var fees=$(".mod-l .fees p");

var product_name=$(".mod-l h1.title")[0].childNodes[0].data;
var product_platform=data_con_title.find("a").first().attr("title");
var money_amount=baseinfo.eq(0).children("b").text();
var money_date= baseinfo.eq(1).children("b").text()+baseinfo.eq(1)[0].childNodes[2].data;
var mark_type=baseinfo.eq(2).children("b").text();
var repayment_mode=baseinfo.eq(3).children("b").text();
var mark_award=baseinfo.eq(4).children("b").text();
var manage_cost=fees.eq(0).children("b").text();
var vip_mode=fees.eq(1).children("b").text();
var time_limit=fees.eq(2).children("b").text();
var security_mode=fees.eq(3).children("b").text();
var year_rate=$(".mod-l .rate_num")[0].childNodes[1].data;

data_one["product_name"]=product_name;
data_one["product_platform"]=product_platform;
data_one["money_amount"]=money_amount;
data_one["money_date"]=money_date;
data_one["mark_type"]=mark_type;
data_one["repayment_mode"]=repayment_mode;
data_one["mark_award"]=mark_award;
data_one["manage_cost"]=manage_cost;
data_one["vip_mode"]=vip_mode;
data_one["time_limit"]=time_limit;
data_one["security_mode"]=security_mode;
data_one["year_rate"]=year_rate;
return data_one;
}


//构建产品链接库
function fetch_links(self,link){
self.wait(100).thenOpen(link,function(){
links = links.concat(self.evaluate(get_produt_website));
});
}
//获取页数
 function get_pages(){
var total_page= $(".c-page a").eq(-2).text();
var pages=[];
for(var i=0;i<total_page;i++){
pages.push("http://www.p2peye.com/hangqing/frtsgp"+i+".html");
}
return pages;

//获取产品网址
function get_produt_website(){
var product_websites=$(".c-bid a");
var links =[];
    product_websites.map(function(){
links.push(this.href);
});
return links;
}
//抓取数据
function query_product_data(){
    var product_info=this.evaluate(function(){
        var data={};
    });
}
casper.run();
0 0
原创粉丝点击