爬取豌豆荚游戏排行榜上的游戏信息,代码可以拷贝到神箭手云爬虫(http://www.shenjianshou.cn/)上直接跑。对爬虫感兴趣的可以加qq群讨论:342953471。 1. [代码] [JavaScript]代码 //使用javasc
1. [代码][JavaScript]代码
//使用javascript编写的爬虫源码,用于爬取豌豆荚游戏排行榜(http://www.wandoujia.com/top/game)上的游戏信息。 //代码粘贴到神箭手云爬虫平台上就可以直接跑了,不需要安装编译环境。要爬取其他网站, //可以更改源码即可。 //代码执行具体步骤请参考: //https://github.com/ShenJianShou/crawler_samples/blob/master/%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%E6%A0%B7%E4%BE%8B%E4%BB%A3%E7%A0%81.txt var configs = { domains: ["apps.wandoujia.com"], scanUrls: ["http://apps.wandoujia.com/api/v1/apps?type=weeklytopgame&max=12&start=0"], contentUrlRegexes: ["http://www\\.wandoujia\\.com/apps/.*"], helperUrlRegexes: ["http://apps\\.wandoujia\\.com/api/v1/apps\\?type=weeklytopgame&max=12&start=\\d+"],//可留空 fields: [ { // 第一个抽取项 name: "title", selector: "//span[contains(@class,'title')]", required: true //是否不能为空 }, { // 第二个抽取项 name: "download", selector: "//i[@itemprop='interactionCount']", required: false //是否不能为空 }, { //第三个抽取项 name:"thumb", selector:"//div[contains(@class,'app-icon')]/img[@itemprop='image']/@src", } ] }; configs.onProcessHelperUrl = function(url, content, site) { var jarr = JSON.parse(content); //发现内容页 for (var i = 0, n = jarr.length; i < n; i++) { var new_url = "http://www.wandoujia.com/apps/"+jarr[i].packageName; site.addUrl(new_url); } var currentStart = parseInt(url.substring(url.indexOf("&start=") + 7)); var start = currentStart+12; if(start < 100){ site.addUrl("http://apps.wandoujia.com/api/v1/apps?type=weeklytopgame&max=12&start="+start); } return true; } var crawler = new Crawler(configs); crawler.start();