让wego微购购物分享系统采集拍拍数据功能之腾讯paipai功能采集插件
wego是一款很不错的导购系统,无论前后台设计风格和功能都还不错,可有时我们的确需要一些自定义的功能,毕竟万千世界,大家都做一样的东西,采集同样的数据,能不烦吗?哈哈,今天就奉献上一个wego拍拍采集的插件,虽有瑕疵,但愿能和大家一起完善。如果做paipai推广,需要注册一些帐号资料,主要是腾讯开放平台的应用和易推广ID http://etg.qq.com/,我要-人气购物平台就是采用这种方式调用数据的。
推广者ID是推广人身份的唯一编号,可不能搞错。其次需要我们在腾讯开放平台上http://fuwu.paipai.com/app/ui/my/list/all.xhtml创建我们的应用已获得CPS调用权限。
接下来我们完成功能实现吧,既然是插件就需要配置吧,咱们首先完成配置吧。
配置完成了,可后台功能,咱们还没实现了,别着急,马上附上代码,只附上有用的,如果大家觉得自己替换马上,可使用本文的附件直接替换,替换前记得要备份哟。
\admin\Lib\Action\items_collectAction.class.php
拍拍API设置:
- /**
- * @desc 拍拍API
- */
- public function paipaiapi(){
- $setting_mod = M('setting');
- if (isset($_POST['dosubmit'])) {
- $paipai['paipai_userid'] = isset($_POST['paipai_userid']) && trim($_POST['paipai_userid']) ? trim($_POST['paipai_userid']) : $this->error('请填写userid');
- $paipai['paipai_appoauthid'] = isset($_POST['paipai_appoauthid']) && trim($_POST['paipai_appoauthid']) ? trim($_POST['paipai_appoauthid']) : $this->error('请填写appoauthid');
- $paipai['paipai_appoauthkey'] = isset($_POST['paipai_appoauthkey']) && trim($_POST['paipai_appoauthkey']) ? trim($_POST['paipai_appoauthkey']) : $this->error('请填写appoauthkey');
- $paipai['paipai_accesstoken'] = isset($_POST['paipai_accesstoken']) && trim($_POST['paipai_accesstoken']) ? trim($_POST['paipai_accesstoken']) : $this->error('请填写accesstoken');
- $paipai['paipai_uid'] = isset($_POST['paipai_uid']) && trim($_POST['paipai_uid']) ? trim($_POST['paipai_uid']) : $this->error('请填写uid');
- foreach( $paipai as $key=>$val ){
- $setting_mod->where("name='$key'")->save(array('data'=>$val));
- }
- $this->success('修改成功', U('items_collect/paipaiapi'));
- }
- $res = $setting_mod->where("name='paipai_userid' OR name='paipai_appoauthid' OR name='paipai_appoauthkey' OR name='paipai_accesstoken' OR name='paipai_uid'")->select();
- foreach( $res as $val ){
- $paipaiset[$val['name']] = $val['data'];
- }
- $this->assign('paipai',$paipaiset);
- $this->display();
- }
- //拍拍秒数据采集入库
- private function paipai_collect_insert($item,$cate_id){
- $items_mod=D('items');
- $items_tags_mod=D('items_tags');
- $items_tags_item_mod=D('items_tags_item');
- //需要判断商品是否已经存在
- $isset=$items_mod->where("item_key='".$item['item_key']."'")->getField('id');
- if($isset){
- return;
- }
- $add_time=time();
- $item['img']=$item['bigUri'];
- $item['simg']=$item['imgUri'];
- $item['bimg']=$item['bigUri'];
- if($item['popular']==0){
- $item['popular']=1;
- }
- $item_id=$items_mod->add(array(
- 'title'=>ReplaceKeywords(strip_tags($item['title'])),
- 'cid'=>$cate_id,
- 'sid'=>$item['sid'],
- 'item_key'=>$item['item_key'],
- 'img'=>$item['img'],
- 'simg'=>$item['simg'],
- 'bimg'=>$item['bimg'],
- 'price'=>$item['price'],
- 'url'=>$item['tagUrl'],
- 'likes'=>$item['popular'],
- 'seller_name'=>$item['nickName'],
- 'cash_back_rate'=>$item['cvValue'],
- 'haves'=>1,
- 'add_time'=>$add_time,
- ));
- //处理标签
- $tags = $items_tags_mod->get_tags_by_title(strip_tags($item['title']));
- if ($tags) {
- $tags = array_unique($tags);
- foreach ($tags as $tag) {
- $isset_id = $items_tags_mod->where("name='".$tag."'")->getField('id');
- if ($isset_id) {
- $items_tags_mod->where('id='.$isset_id)->setInc('item_nums'); //如果存在此标签的商品 让item_nums+1
- $items_tags_item_mod->add(array(
- 'item_id' => $item_id,
- 'tag_id' => $isset_id
- ));
- } else {
- $tag_id = $items_tags_mod->add(array('name'=>$tag));
- $items_tags_item_mod->add(array(
- 'item_id' => $item_id,
- 'tag_id' => $tag_id
- ));
- }
- }
- }
- }
- public function collect()
- {
- if(isset($_REQUEST['dosubmit'])){
- $cate=implode(',',$_REQUEST['cate']);
- header("location:".U('items_collect/taobao_batch_collect_jump?act=batch&cate='.$cate));
- exit;
- }
- $code = isset($_REQUEST['code']) ? trim($_REQUEST['code']) : $this->error('参数错误');
- $items_cate_mod = D('items_cate');
- switch ($code) {
- case 'taobao':
- $res=get_items_cate_list();
- $this->assign('items_cate_list', $res['sort_list']);
- break;
- case 'miao':
- $res=get_items_cate_list('0','0','1','collect_miao');
- $this->assign('items_cate_list', $res['sort_list']);
- break;
- case "paipai":
- $this->error("暂不支持此功能。");
- break;
- }
- $this->assign('code',$code);
- $this->display();
- }
- //分类采集
- public function cate_collect()
- {
- if(isset($_REQUEST['dosubmit'])){
- $cate=implode(',',$_REQUEST['cate']);
- header("location:".U('items_collect/taobao_batch_collect_jump?act=batch&cate='.$cate));
- exit;
- }
- $code = isset($_REQUEST['code']) ? trim($_REQUEST['code']) : $this->error('参数错误');
- $items_cate_mod = D('items_cate');
- switch ($code) {
- case 'taobao':
- $items_cate_mod = D('items_cate');
- $taocate=$this->get_taocats();
- $this->assign('cate_list', $taocate);
- break;
- case 'miao':
- $items_cate_mod = D('items_cate');
- $miaocate=$this->get_miaocats();
- $this->assign('cate_list', $miaocate);
- break;
- case "paipai":
- $items_cate_mod = D('items_cate');
- $paipaicate=$this->get_paipaicats();
- break;
- }
- $this->assign('code',$code);
- $this->display();
- }
- /**
- * @desc 获取拍拍分类
- */
- private function get_paipaicats($cid){
- //$paipai_api=$this->paipai_client();
- //$paipai_api->setApiPath("/deal/sellerSearchDealList.xhtml")
- //exit;
- return null;
- }
拍拍搜索功能
- public function search_paipai(){
- $_GET=setFormString($_GET);
- $keyword = isset($_GET['keyword']) && trim($_GET['keyword']) ? trim($_GET['keyword']) : '';
- $pages = isset($_GET['pages']) && intval($_GET['pages']) ? intval($_GET['pages']) : 1;
- $p=isset($_GET['p'])?$_GET['p']:1;
- $start_price=$_GET['begPrice'];
- $end_price=$_GET['endPrice'];
- //获取此商品对应的商家sid
- $items_cate_mod = D('items_cate');
- $items_site_mod = D('items_site');
- $paipai_api = $this->paipai_client(); //获取59秒api设置信息
- $paipai_api->setApiPath("/cps/cpsCommSearch.xhtml");//这个是用户需要调用的 接口函数
- $paipai_api->setMethod("get");//post
- $paipai_api->setCharset("utf-8");//gbk
- $paipai_api->setFormat("json");//gbk
- !empty($_GET['begPrice'])&&$params['begPrice']=$_GET['begPrice'];
- !empty($_GET['endPrice'])&&$params['endPrice']=$_GET['endPrice'];
- !empty($_GET['keyWord'])&&$params['keyWord']=$_GET['keyWord'];
- !empty($_GET['pageSize'])&&$params['pageSize']=$_GET['pageSize'];
- !empty($_GET['degree'])&&$params['degree']=$_GET['degree'];
- !empty($_GET['saleType'])&&$params['saleType']=$_GET['saleType'];
- //填写推广者ID
- $params['userId']=$this->setting['paipai_userid'];
- $paipai_api->setParams($params);
- $data=$paipai_api->invoke();
- if(!$data||$data->CpsCommSearchResult->errorCode!=0)
- return;
- $data=json_decode($data);
- $goods_list= $data->CpsCommSearchResult->vecComm;
- $goods_list_s = array();
- foreach ($goods_list as $val){
- $val->price=doubleval(($val->price/100));
- $val->cvValue=doubleval(($val->cvValue/10000));
- $goods_list_s[$val->itemId]=get_object_vars_final($val);
- }
- //每次保存
- count($goods_list_s)>0 && F('goods_list_paipai',$goods_list_s);
- $this->assign('list', $goods_list_s);
- $this->display();
- }
- /**
- * @desc 拍拍数据发布
- */
- public function publishpaipai(){
- $ids=$_GET['ids'];
- if(isset($_POST['dosubmit'])){
- //从缓存中获取本页商品数据
- $items_cate_mod = D('items_cate');
- $ids=$_POST['ids'];
- $ids_arr = explode(',', $ids);
- $cate_id=$_POST['cid'];
- $goods_list_s = F('goods_list_paipai');
- $items_site_mod = D('items_site');
- $sid = $items_site_mod->where("alias='paipai'")->getField('id');
- $items_nums = 0;
- foreach ($goods_list_s as $key => $val) {
- if (in_array($key,$ids_arr)) {
- $val['item_key'] = 'paipai_'.$val['itemId'];
- $val['sid'] = $sid;
- $this->paipai_collect_insert($val,$cate_id); //数据入库
- $items_nums++;
- }
- }
- if ($items_nums>0) {
- $items_cate_mod->where('id='.$cate_id)->setInc('item_nums', $items_nums);
- }
- $this->collect_success('采集完成', '', 'collect');
- }else{
- $items_cate_mod = D('items_cate');
- $cate_list=$items_cate_mod->get_top2_list();
- $this->assign('cate_list', $cate_list);
- $this->assign('ids',$ids);
- }
- $this->display();
- }
最后一步我们追加系统需要的API到系统vendar库中:\includes\thinkphp\Extend\Vendor\apipaipai
HttpClient.class.php
PaiPaiOpenApiOauth.php
拍拍易推广CPSAPI:http://files.cnblogs.com/mengdejun/apipaipai.zip
整个插件附件:http://files.cnblogs.com/mengdejun/wyao.in.paipai.zip
现在我们可以畅快的使用拍拍产品了,多一种选择,多一种收获,何乐而不为了。
原创文章,拒绝采集,如需转载请保留出处及其作者信息。
作者:孟德军<mengdj@outlook.com> QQ:280759843 自定义开发可Q我。
本文地址:http://www.cnblogs.com/mengdejun/p/wego_paipai_collect_plugin.html
让wego微购购物分享系统采集拍拍数据功能之腾讯paipai功能采集插件的更多相关文章
- wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件
和哥们研究淘宝客,找到微购这个程序觉得挺不错的,但是地图和RSS功能不是特别完善,于是小憩一下,做了下初级的拓展,分享给大家,开源精神嘛,大家也可以去我的网站我要购物平台去看看. 1.拓展后台seoA ...
- 【BUG】wego购物分享系统未登陆分享宝贝时查看宝贝自动新增产品数据
1.登录微购http://demo.wego360.com/站. 2.分享宝贝功能检索第三方平台商品数据. 1.登录微购http://demo.wego360.com/站. 2.分享宝贝功能检索第三方 ...
- 再谈C#采集,一个绕过高强度安全验证的采集方案?方案很Low,慎入
说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 中,介绍过采集用的工具,其实很Low的,分析 ...
- Django项目:CMDB(服务器硬件资产自动采集系统)--12--08CMDB采集硬件数据日志记录
#settings.py # ————————01CMDB获取服务器基本信息———————— import os BASEDIR = os.path.dirname(os.path.dirname(o ...
- Django项目:CMDB(服务器硬件资产自动采集系统)--11--07CMDB文件模式测试采集硬件数据
#settings.py # ————————01CMDB获取服务器基本信息———————— import os BASEDIR = os.path.dirname(os.path.dirname(o ...
- API例子:用Python驱动Firefox采集网页数据
1,引言 本文讲解怎样用Python驱动Firefox浏览器写一个简易的网页数据采集器.开源Python即时网络爬虫项目将与Scrapy(基于twisted的异步网络框架)集成,所以本例将使用Scra ...
- STM32L15x——ADC采集DMA数据只第一次正确(已解决)
前提:我用的芯片是STM32L系列,可能对其它STM32系列不完全适用,仅供参考! 一.问题描述 我在使用DMA方式读取单ADC单通道采集的数据时,发现只能正确的采集一次数据,后来的就一直与第一次的相 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(二十)——Saga框架实现思路分享
今天这篇博文的主要目的是分享一下我设计Saga的实现思路来抛砖引玉,其实Saga本身非常的类似于一个简单的工作流体系,相比工作流不一样的部分在于它没有工作流的复杂逻辑处理机制(比如会签),没有条件分支 ...
- 推文《阿里凑单算法首次公开!基于Graph Embedding的打包购商品挖掘系统解析》笔记
推文<阿里凑单算法首次公开!基于Graph Embedding的打包购商品挖掘系统解析>笔记 从17年5月份开始接触Graph Embedding,学术论文读了很多,但是一直不清楚这技术是 ...
随机推荐
- Vue#计算属性
在模板中表达式非常便利,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护.这就是为什么 Vue.js 将绑定表达式限制为一个表达式.如果需要多于一 ...
- git warning: LF will be replaced by CRLF in...
如果你有git项目,在提交代码的过程中可能会碰到上面的警告,特别是的项目中包含序列化对象的时候,你可能要小心!! 警告的含义是说换行符的,不同的操作系统的换行符是不一致的,如果你不清楚,真得看看这个 ...
- 对于JSP的调试
在eclipse中调试JSP 我换了图片但是网页中的图片却不变化 我删了工程里的图片还是没用 看了一下Tomcat根目录..貌似也是没有的.. 最后我考虑换了HTML中图片的名字..并且更改了替换的图 ...
- Blog Starting...
30出头,开始Blog记录学习生活的点滴,待40时再回来一看.
- Action处理请求参数
第一种 :Action 本身作为model对象,通过成员setter封装 (属性驱动 ) 第一种方式:<br> <form action="${pageContext.re ...
- loadrunner比较有用的字符串函数
loadrunner比较有用的字符串函数 ******************************************************************************* ...
- javascript引擎工作原理
1. 什么是JavaScript解析引擎? 简单地说,JavaScript解析引擎就是能够“读懂”JavaScript代码,并准确地给出代码运行结果的一段程序.比方说,当你写了 var a = 1 + ...
- css/js(工作中遇到的问题)
移动设备点击时去掉外加的蓝色边框 a, input, button { -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-tap-highligh ...
- hdu 5459 Jesus Is Here (费波纳茨递推)
Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/102400 K (Java/Others)Total Submission ...
- Spring mvc 验证码的做法
http://jingyan.baidu.com/article/4f7d5712da7a131a201927b0.html