PinPHP后臺批量采集的功能二次開發修改實現
來源:程序員人生 發布時間:2013-11-10 11:35:26 閱讀次數:3781次
使用PinPHP有一段時間了,利用PinPHP在Sae上搭了個環境,運營一個月左右的《時尚美匯》,所以最近也一直在研究這套程序,順便做些二次開發,加入些自己的想法。例如之前寫過的博文:加入人人網帳號登錄(淘寶登錄其實也做了,只是在淘寶應用中心上用)、修改PinPHP采集。
好吧,今天來說說關于PinPHP后臺批量采集的功能二次開發修改實現,本人一開始接解pinphp,使用的是2.1測試版,
到現在官方已經發布了2.2版,但遺憾的是,大家一值期待的批量采集功能并沒有如愿發布,所以本人自己嘗試去修改修改,
其實程序早在半個月前就寫好了,只是自己在用,一方面工作有點忙,另一方面自己測試一段時間,順便完善一下。
實現原現很簡單,主要是修改采集界面,加了幾個checkbox,用于傳遞要采集的id、關鍵字等。
1、修改:adminTpldefaultitems_collectcollect.html頁面,28行左右。
Copy to Clipboard
引用的內容:
[www.veryhuo.com] <input type="checkbox" id="subcb_{$sval.id}" class="cb_{$val.id} subcb" name="cate[]" value="{$sval.id}"/>
<input type="hidden" id="subname_{$sval.id}" class="cbname_{$val.id} subcb" name="subname[]" value="{$sval.name}"/>
官方應該是有嘗試去做批量采集,因為此頁面上有關于批量采集的代碼未完成,只是注釋了。
2、然后在adminLibActionitems_collectAction.class.php上增加了一個函數,以及略修改原采集函數
Copy to Clipboard
引用的內容:
[www.veryhuo.com] function ajaxCollect(){
set_time_limit(0);
$subname=$_REQUEST['subname'];
$arrUrls=array();
foreach($_REQUEST['cate'] as $k=>$v){
if(!empty($subname[$k])){
$arrUrls[]='http://mmlike.sinaapp.com/mlike_admin.php?a=taobao_collect_jump&m=items_collect&pages=1&cate_id='.$v.'&keywords='.$subname[$k];
}
}
$this->assign('url',json_encode($arrUrls));
$this->display('ajaxCollect');
}
這一句有一些信息要注意一下
Copy to Clipboard
引用的內容:
[www.veryhuo.com] $arrUrls[]='http://mmlike.sinaapp.com/mlike_admin.php?a=taobao_collect_jump&m=items_collect&pages=1&cate_id='.$v.'&keywords='.$subname[$k];
page=1是采集一頁,每頁40個商品,如果需要一次采集更多商品,可自行修改,但不建議填太大的值,一方面采集時間長,另一方面,淘寶api請求可能會太頻繁。
修改public function collect()函數,前半部分的if改成
Copy to Clipboard
引用的內容:
[www.veryhuo.com] if(isset($_REQUEST['dosubmit'])){
/******批量采集*******/
$cate=implode(',',$_REQUEST['cate']);
$this->ajaxCollect();
//header("location:".U('items_collect/taobao_batch_collect_jump?act=batch&cate='.$cate));
exit;
/******批量采集*******/
}
3、在模板里增加一個,adminTpldefaultitems_collectajaxCollect.html
Copy to Clipboard
引用的內容:
[www.veryhuo.com] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax</title>
<script language="javascript" type="text/javascript" src="__ROOT__/statics/js/jquery/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
var url={$url};
var i=0,j=0;
var len=url.length;
if(len>0){
bc=setInterval("getCollect()",1000);
}
function getCollect(){
var process=0;
if(i>len-1){
clearInterval(bc);
$('#state').html('<span style="color:#C00000">全部完成</span>,共'+i+'個,其中'+j+'個失敗<br />');
return false;
}
if(!!url[i])
{
$.ajax({
url:url[i],
dataType:'html',
cache:false,
async:true,
beforeSend: function(){
var str='<img src="__ROOT__/statics/admin/images/ajax_loading.gif" />';
$('#state').html(str+'采集中...');
},
success: function(data){
if(!!data){
process=Math.min(Math.round(i/(len-1)*100),100);
$('#process').text(process+'%');
}
},
error:function(){
j++;
process=Math.min(Math.round(i/(len-1)*100),100);
$('#process').text(process+'%');
}
});
}
i++;
}
</script>
</head>
<!--- Downloads By http://www.veryhuo.com ---->
<body>
<div id="result">
<span id="state"></span>
<span id="process"></span>
</div>
</body>
</html>
了解php和js的朋友應該看懂,將組裝好的采集url,以json形式放在js里,利用setInterval定時器去定時執行ajax請求,遍歷所有的url
直到完成。一開始用setInterval而不是直接for遍歷是擔心分類多時,太頻繁請求淘寶api會導致部份采集不成功。
上面的ajax使用異步請求,之前嘗試使用同步去獲取,是為了方便捕獲到那個采集成功,哪個不成功,以便手動去采集,
測試了一段時間,雖然效果是達到了,但由于分類太多一次采集的時候,瀏覽器會卡,而已采集總時間也變長漫長。現還是使用
異步,不卡,縮短采集時間,雖然也可以實現失敗捕足,但要修改更多的代碼,這個有時間有研究。現在的效果如下

用%比顯示進度,最后會顯示完成度和有多少個失敗,至于失敗的再采集一次,又或者自己去檢查哪個未采集手動采集。
這個修改后,原采集功能也可正常使用。
重申一下,本人使用的是pinphp2.1測試版,其他版本若要修改,可作為參考,以下是修改文件的打包,不建議直接覆蓋,最好
對比一下代碼,如要覆蓋,請先備份原文件,以便恢復。
點擊下載:pinphp批量采集
教程來源:http://meego123.net/?post=140
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
------分隔線----------------------------
------分隔線----------------------------
主站蜘蛛池模板:
国产亚洲精品久久
|
日本乳首の奶水在线观看视频
|
av片在线播放
|
国产综合区
|
免费啪啪
|
国产传媒一区二区三区
|
www.yw尤物
|
97av视频在线|
国产欧美日本在线
|
精品久久久999
|
国产一区二区三区在线免费
|
成人免费视频在线观看
|
亚洲一级在线观看
|
www.麻豆
|
99精品九九|
1000部精品久久久久久久久
|
久久久久国产一区二区三区四区
|
av大片免费看
|
伊人91|
91射区|
一级久久久
|
中文字幕国产
|
亚洲精品视频在线观看视频
|
欧美一级免费看
|
国产一区二区三区电影在线观看
|
99riav视频|
一级成人黄色片
|
国产精品一二三区
|
国产成人精品免费视频
|
黄色精品一区二区
|
国产精品久久久久久久7电影
|
久久综合av
|
成人免费黄网站
|
在线久|
欧美一区二区三区在线观看
|
日韩欧美国产精品
|
国产在线日韩
|
搞黄视频在线免费观看
|
精品成人av|
国产三级|
色婷婷中文字幕
|