本文主要介绍在神箭手上开发“淘宝客高佣金商品采集爬虫”的过程,爬虫主要实现批量爬取淘宝客高佣金商品数据的功能,爬取字段包括商品名称、月销、价格和佣金等字段。
淘宝客是一种按成交计费的推广模式,淘宝客只要从淘宝客推广专区获取商品代码,任何买家(包括你自己)经过你的推广(链接、个人网站,博客或者社区发的帖子)进入淘宝卖家店铺完成购买后,就可得到由卖家支付的佣金。所以,高佣金的商品对于淘宝客用户来说是非常有用的,在各个渠道推广这些商品都可以获得不错的收益。
采集网站URL:http://pub.alimama.com/promo/item/channel/index.htm?channel=qqhd
使用功能点:
· afterDownloadPage、onProcessScanPage和afterExtractField回调函数
下面,给你详细说明“淘宝客高佣金商品采集爬虫”在神箭手上的开发过程:
步骤1 创建爬虫
注册并登录神箭手,进入神箭手控制台。
点击“新建应用”,选择“爬虫”,点击“下一步”。
输入爬虫名称“淘宝客高佣金商品采集爬虫”,选择“编辑模式”,点击“创建”,神箭手爬虫创建成功。
步骤2 分析网页&开发爬虫
本文使用Chrome浏览器分析淘宝客高佣金商品网页,按“F12”打开浏览器“开发者工具”。
在浏览器“开发者工具”中勾选“Preserve log”,按“F5”刷新网页,高佣金商品列表数据便会重新加载进来。
在浏览器“开发者工具”中选择“XHR”,搜索“qqhd.json”,便可找到存放商品信息的URL。
分析请求该URL返回的JSON数据,结合“神箭手开发文档”,在神箭手爬虫编辑页开发爬虫代码。
步骤3 测试并运行爬虫
爬虫开发完成后,点击“测试”按钮,检查爬虫的爬取结果是否正确。
测试通过后,进入“爬虫设置”页,设置“代理IP”、“文件云托管”等服务,点击“保存”。
返回爬虫总览页,点击“启动爬虫”,稍等片刻,爬虫就会爬到数据了。如果嫌弃爬虫的爬取速度,建议在神箭手后台给爬虫增加节点,或者优化爬虫代码。
步骤4 数据发布与导出
爬虫爬到数据后,可以选择将数据“发布到网站或数据库”中,点此查看神箭手数据发布详细教程。
此外,还可选择将数据“导出”,点此查看神箭手数据导出详细教程。
神箭手上开发的“淘宝客高佣金商品采集爬虫”导出数据示例,如下图所示:
“淘宝客高佣金商品采集爬虫”完整示例代码:
/**
淘宝客高佣金商品采集爬虫源码
爬虫最多可采集100页淘宝客高佣金商品信息
建议给爬虫配置神箭手代理IP,可有效解决淘宝客反爬问题
对于爬虫代码有不懂的地方,请参考神箭手开发文档(http://docs.shenjian.io/develop/crawler/quick-start.html)
**/
var configs = {
domains: ["pub.alimama.com"],
scanUrls: ["http://pub.alimama.com/promo/item/channel/index.htm?channel=qqhd"],
contentUrlRegexes: [
/http[\w:\/]+pub\.alimama\.com\/items\/channel\/qqhd\.json\?.*/
],
helperUrlRegexes: [""],
autoFindUrls: false,
fields: [
{
name: "infos",
selectorType: SelectorType.JsonPath,
selector: "$.data.pageList",
repeated: true,
children: [
{
name: "id",
alias: "商品ID",
selectorType: SelectorType.JsonPath,
selector: "$.auctionId",
required: true,
primaryKey: true
},
{
name: "name",
alias: "商品名称",
selectorType: SelectorType.JsonPath,
selector: "$.title"
},
{
name: "image",
alias: "商品图片",
selectorType: SelectorType.JsonPath,
selector: "$.pictUrl"
},
{
name: "price",
alias: "商品价格",
selectorType: SelectorType.JsonPath,
selector: "$.zkPrice"
},
{
name: "monthly_sales",
alias: "月销量",
selectorType: SelectorType.JsonPath,
selector: "$.biz30day"
},
{
name: "commision",
alias: "商品佣金",
selectorType: SelectorType.JsonPath,
selector: "$.tkCommFee"
},
{
name: "commision_rate",
alias: "佣金比率",
selectorType: SelectorType.JsonPath,
selector: "$.eventRate"
},
{
name: "day_left",
alias: "剩余活动天数",
selectorType: SelectorType.JsonPath,
selector: "$.dayLeft"
},
{
name: "url",
alias: "商品链接",
selectorType: SelectorType.JsonPath,
selector: "$.auctionUrl"
},
{
name: "shop_name",
alias: "店铺名称",
selectorType: SelectorType.JsonPath,
selector: "$.shopTitle"
}
]
}
]
};
configs.afterDownloadPage = function (page, site) {
msleep(10000);
return page;
};
configs.onProcessScanPage = function(page, content, site) {
for (var i = 1; i <= 100; i++) {
var url = "http://pub.alimama.com/items/channel/qqhd.json?channel=qqhd&toPage=" + i + "&perPageSize=50";
site.addUrl(url);
}
return false;
};
configs.afterExtractField = function(fieldName, data, page, site) {
if (!data) {
return data;
}
if (fieldName == "infos.image") {
return "https:" + data;
}
else if (fieldName == "infos.commision_rate") {
return data + "%";
}
return data;
};
var crawler = new Crawler(configs);
crawler.start();
网友评论