人人贷散标信息采集爬虫开发详解(附源码)

本文主要介绍“人人贷散标信息采集爬虫”(以下简称“人人贷散标爬虫”)的使用教程及注意事项。

 

采集网址

https://www.renrendai.com/loan.html

使用功能点

· 从单个页面采集多条数据

· initCrawlonProcessContentPageafterExtractField回调函数

 

通过采集与分析人人贷散标信息,可以了解到贷款用户的资金使用流向,还能进一步挖掘出更深层次的数据。

 

与网上的各种采集器相比,神箭手的优势明显,能全天候不间断地在云端采集数据,采集速度快,且支持弹性升降采集速度,支持自动接入和切换代理IP服务,支持通过webhooks服务实时发布数据,此外,还有文件云托管、GraphQL等服务供你使用。

 

接下来,教你如何在神箭手上开发“人人贷散标爬虫”,并在云端采集和导出数据:

 

步骤一  注册登录

打开神箭手官网,注册并登录神箭手,进入神箭手控制台。

注意:神箭手已支持使用QQ和GitHub账号登陆。

1

 

步骤二  创建爬虫

进入神箭手控制台,输入爬虫名称“人人贷散标爬虫”,创建爬虫应用。

2

 

步骤三  分析网站 开发爬虫

打开网页,发现一个页面中有多条数据

3

然后,通过Chrome浏览器的开发者工具分析网页的所有请求,点击多页后发现网页数据是通过AJAX异步加载出来的,这里可以得到获取数据的链接“https://www.renrendai.com/loan/list/loanList?startNum=1&limit=10&_=1533810915505

4-%e5%a4%8d%e5%88%b6

由于异步加载的数据都是JSON格式,所以很好处理,此处不做赘述。直接在神箭手大数据平台开发代码(爬虫源码见附件)。

注意:网页的第一页比较特殊,因为数据在网页源码中,但其他页面数据都是异步加载的,千万别被迷惑了,分析时,要多分析几个网页页面。

5

 

步骤四  爬取数据

爬虫开发完成,测试没问题后,进入“人人贷散标爬虫”设置页面,你可以“调整爬虫名称和描述”、“选择文件云托管方式”以及“设置代理IP种类等”,最后别忘了点“保存”。

注意:为了尽可能提高爬虫的爬取速率,建议勾选“只打印关键日志”。

6-%e5%a4%8d%e5%88%b6

然后,进入“人人贷散标爬虫”总览页,点击“启动爬虫”,需自行配置爬虫运行期间所使用的节点数,并选择是否设置定时任务后,启动爬虫,爬虫便开始爬取数据,过一会儿,你就能在“爬取结果”页查看爬到的散标信息了。

注意:节点数可根据爬虫的爬取情况灵活配置,节点越多,爬虫的爬取速率越快,爬取效果越好。

7-%e5%a4%8d%e5%88%b6

8-%e5%a4%8d%e5%88%b6

 

步骤五  数据发布与导出

当爬虫爬到数据后,你可以选择将数据“发布到数据库/网站/媒体”中,点此查看神箭手数据发布详细教程。

9

此外,你还可选择将数据“导出”,点此查看神箭手数据导出详细教程。

10

 

“人人贷散标爬虫”散标信息导出示例展示,如下图所示:

11

 

如果你开发完爬虫后,意犹未尽,就来神箭手云市场找找还有没有你需要的爬虫吧~~

 

神箭手云市场提供了“股票数据爬虫[雪球]”和“虚拟加密货币实时行情查询API”等海量爬虫、API和数据源应用供你使用。

 

附件:人人贷散标信息采集爬虫 完整源码

/**
人人贷散标信息采集爬虫源码
此爬虫使用单页多数据的抽取方式
对于爬虫代码有不懂的地方,请参考神箭手开发文档(http://docs.shenjian.io/develop/crawler/quick-start.html)
**/

var configs = {
domains: [“.renrendai.com”],
helperUrlRegexes: [“”],
autoFindUrls: false,
fields: [
{
name: “infos”,
selectorType: SelectorType.JsonPath,
selector: “$.data.list”,
repeated: true,
children: [
{
name: “borrower_id”,
alias: “年利率”,
selectorType: SelectorType.JsonPath,
selector: “$.borrowerId”,
primaryKey: true
},
{
name: “interest”,
alias: “年利率”,
selectorType: SelectorType.JsonPath,
selector: “$.interest”
},
{
name: “title”,
alias: “借款标题”,
selectorType: SelectorType.JsonPath,
selector: “$.title”
},
{
name: “left_months”,
alias: “期限”,
selectorType: SelectorType.JsonPath,
selector: “$.leftMonths”
},
{
name: “amount”,
alias: “金额”,
selectorType: SelectorType.JsonPath,
selector: “$.amount”
},
{
name: “finished_ratio”,
alias: “进度”,
selectorType: SelectorType.JsonPath,
selector: “$.finishedRatio”
},
{
name: “status”,
alias: “状态”,
selectorType: SelectorType.JsonPath,
selector: “$.status”
}
]
}
]
};

configs.initCrawl = function(site) {
var scanUrl = “https://www.renrendai.com/loan/list/loanList?startNum=0&limit=10&_=” + new Date().getTime();
site.addScanUrl(scanUrl);
};

configs.onProcessContentPage = function(page, content, site) {
var jsonData = {};
try {
jsonData = JSON.parse(page.raw);
}
catch (err) {
console.debug(“Failed to parse page.raw! err: ” + err);
return false;
}
var num = jsonData.data.num;
var curPageNum = jsonData.data.start / num + 1;
var totalPageNum = Math.ceil(jsonData.data.totalCount/num);
if (curPageNum >= totalPageNum) {
return false;
}
msleep(5000);
site.addUrl(“https://www.renrendai.com/loan/list/loanList?startNum=” + curPageNum + “&limit=10&_=” + new Date().getTime());
return false;
};

configs.afterExtractField = function(filedName, data, page, site) {
if (!data) {
return data;
}
if (filedName == “infos.interest”) {
return data + “%”;
}
else if (filedName == “infos.left_months”) {
return data + “个月”;
}
else if (filedName == “infos.amount”) {
return data + “元”;
}
else if (filedName == “infos.finished_ratio”) {
return Math.floor(data) + “%”;
}
else if (filedName == “infos.status”) {
switch(data) {
case “OPEN”:
return “出借”;
case “FIRST_READY”:
return “已满标”;
case “IN_PROGRESS”:
return “还款中”;
default:
return data;
}
}
return data;
};

var crawler = new Crawler(configs);
crawler.start();

 

分享至微信朋友圈 ×
打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。