PinPHP购物分享系统2.2后台批量采集修改实现方法
发布时间:2020-12-14 03:52:48 所属栏目:Dedecms 来源:网络整理
导读:因前段时间较忙,所以一直将这开发搁置了。今天看了一下新版的PinPHP,又心血来潮于是写了一下这个批量采集的实现,没想到写了差不多一两小时就实现了,虽然写得比较简单,也算是可以帮助一键采集一个分类。同时非常感谢PinPHP团队开发出 如此好使的开源程序
因前段时间较忙,所以一直将这开发搁置了。今天看了一下新版的PinPHP,又心血来潮于是写了一下这个批量采集的实现,没想到写了差不多一两小时就实现了,虽然写得比较简单,也算是可以帮助一键采集一个分类。同时非常感谢PinPHP团队开发出 如此好使的开源程序,哈,闲话先不多说,上代码。 主要是对一个模板文件作了修改。/PinPHP_V2.21/admin/Tpl/default/items_collect/collect.html <div style="display:inline-block; margin-left:30px; width:650px"> <input type="button" value="批量采集当前分类" id="btnCollectCurrent" style="padding:5px 10px; margin-right:30px;" /> <img src="http://meego123.net/__ROOT__/statics/images/masonry_loading.gif" id="collecting" style="display:none" /> <span id="info"></span> </div> JS实现: (function($){ //当前 var argArray,str,strSplit,strUrl,collectTimer,nLen,count=0,errCount=0; $("#btnCollectCurrent").bind("click",function(){ argArray = new Array(); $("#items_cate_list tr").each(function(index,element) { $(this).children("td").each(function(index,element) { var aTag = $(this).children("a"); if(aTag.length>0){ var str=$(aTag).attr("href").replace("javascript:collect(","").replace(")","").replace(";","").replace("'",""); var strSplit = str.split(","); var strUrl = '?page=1&a=taobao_collect_jump&m=items_collect&cate_id='+strSplit[0]+'&keywords='+$.trim(strSplit[1]); argArray.push(strUrl); } }); }); $("#collecting").show(); $("#info").text("采集中..."); nLen = argArray.length; collectTimer = setInterval(function(){ if(count>=nLen) { clearInterval(collectTimer); $("#collecting").hide(); $("#info").text("采集完成"); return; } $.ajax({ url:argArray[count], type:"GET", dataType:"Html", async:false, success:function(){ $("#info").text("采集中...共"+nLen+"个 当前正在执行第"+count+"个采集 失败"+errCount+"个"); count++; }, error:function(){ errCount++; count++; } }); },1000); }); })(jQuery); 实现效果: 目前只实现了采集当前选中分页的子类批量采集。 从代码可以看出,也是拼接采集的URL,然后通过Ajax定时请求,这次用了同步采集,测试中发现采用异步时 其中有些分类会采集失败,可能因为请求被中掉。采集间隔设置为1秒,为保证请求完成,并在过多类时,防止阻塞 导致浏览器假死。若要采集多页可修改page参数,暂设定为1页 var strUrl = '?page=1&a=taobao_collect_jump&m=items_collect&cate_id='+strSplit[0]+'&keywords='+$.trim(strSplit[1]); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |