PinPHP后臺批量采集的功能二次開發修改實現
來源:程序員人生 發布時間:2013-11-10 11:35:26 閱讀次數:3773次
使用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
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
------分隔線----------------------------
------分隔線----------------------------
主站蜘蛛池模板:
免费爽视频
|
男人天堂网2021
|
国产欧美另类性视频
|
亚洲爱v
|
www.久久av.com|
亚洲视频二区
|
性欧美18一19
|
波多野结衣日韩
|
亚欧美综合
|
2022久久国产精品免费热麻豆
|
α毛片
|
国产精品亚洲二区
|
亚洲色图欧美色
|
免费xx
|
亚洲第一成人在线
|
国内精品久久影院
|
亚洲视频在线a视频
|
久久久久欧美激情
|
高清国产性色视频在线
|
亚洲精品国产第一区二区多人
|
91精品福利一区二区
|
国产亚洲一区二区精品
|
国产高清不卡一区二区三区
|
免费网站在线视频美女被
|
久久女人天堂
|
欧美日韩亚洲综合在线一区二区
|
无夜精品久久久久久
|
久久久久免费精品国产
|
欧美日本一二三区
|
亚洲国产成人综合
|
黑人极品巨大videoshd
|
在线看毛片网站
|
欧美一区=区三区
|
激情在线免费视频
|
亚洲欧美精品中文字幕
|
伊人国产在线
|
欧美做受
|
亚洲 欧美 日韩在线一区
|
国产免费一区不卡在线
|
亚洲欧美成人永久第一网站
|
亚洲精品国产精品一区二区
|