最近在开发一套淘宝客系统软件,在解决各种的问题,导致没有空写文章,看了很多朋友都问这个数据如何导入到数据库里面,那么今天我就以同步大淘客的数据作为例子,讲解一下如何把数据同步到本地数据库中。如果对我这个课程感兴趣的话,可以订阅我的头条号:一点热,也欢迎大家在下方的讨论区讨论。
既然是以大淘客的数据为例子,那么我们需要的就是大淘客的appkey,具体申请地址可以到这里查看
http://www.dataoke.com/ucenter/appkey_apply.asp
那么我们就开始我们要同步的数据了,由于我开始设计的数据库的字段和大淘客返回的数据的字段有一些不一样,那么我们需要对我们的数据库进行改造,改造后的数据库语句如下
DROP TABLE IF EXISTS `yeehot_taobaoke_product`;
CREATE TABLE `yeehot_taobaoke_product` (
`shopid` varchar(255) CHARACTER SET utf8 NOT NULL,
`name` varchar(255) CHARACTER SET utf8 NOT NULL,
`image` varchar(255) CHARACTER SET utf8 NOT NULL,
`detail` varchar(255) CHARACTER SET utf8 NOT NULL,
`type` varchar(255) CHARACTER SET utf8 NOT NULL,
`tbk_link` varchar(255) CHARACTER SET utf8 NOT NULL,
`price` varchar(255) CHARACTER SET utf8 NOT NULL,
`product_sale_count` varchar(255) CHARACTER SET utf8 NOT NULL,
`product_rate` varchar(255) CHARACTER SET utf8 NOT NULL,
`product_earn` varchar(255) CHARACTER SET utf8 NOT NULL,
`wangwang_name` varchar(255) CHARACTER SET utf8 NOT NULL,
`saler_id` varchar(255) CHARACTER SET utf8 NOT NULL,
`shop_name` varchar(255) CHARACTER SET utf8 NOT NULL,
`product_from` varchar(255) CHARACTER SET utf8 NOT NULL,
`card_id` varchar(255) CHARACTER SET utf8 NOT NULL,
`card_num` varchar(255) CHARACTER SET utf8 NOT NULL,
`card_own` varchar(255) CHARACTER SET utf8 NOT NULL,
`card_money` varchar(255) CHARACTER SET utf8 NOT NULL,
`card_begin` varchar(255) CHARACTER SET utf8 NOT NULL,
`card_end` varchar(255) CHARACTER SET utf8 NOT NULL,
`card_link` varchar(255) CHARACTER SET utf8 NOT NULL,
`card_share` varchar(255) CHARACTER SET utf8 NOT NULL,
`short_title` varchar(255) DEFAULT NULL,
`cid` varchar(255) DEFAULT NULL,
`quan_price` varchar(255) DEFAULT NULL,
`dsr` varchar(255) DEFAULT NULL,
`Commission_jihua` varchar(255) DEFAULT NULL,
`Commission_queqiao` varchar(255) DEFAULT NULL,
`Jihua_link` varchar(255) DEFAULT NULL,
`Jihua_shenhe` varchar(255) DEFAULT NULL,
`Introduce` varchar(255) DEFAULT NULL,
`Quan_m_link` varchar(255) DEFAULT NULL,
`Quan_link` varchar(255) DEFAULT NULL,
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Quan_condition` varchar(255) NOT NULL,
`after_price` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
SET FOREIGN_KEY_CHECKS = 1;
注意:如果这里不知道怎么操作更新的话,可以重新导入daogou.sql
使用PHP需要访问数据,一般都是使用curl函数来实现的,简单的几个步骤就可以进行get操作了,代码如下:
function getinfo($url) {
$ch = curl_init();
//设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
//释放curl句柄
curl_close($ch);
return $output;
}
有了这个网络访问链接,那么我们就可以进行数据的采集。
对比大淘客的全站领券商品API接口
http://api.dataoke.com/index.php?r=Port/index&type=total&appkey="你的APPKEY"&v=2&page="当前页数"
基本就是两个参数,一个是刚刚我们说到的KEY,还有一个页数。
了解这个接口后,我们就可以开发采集的功能了
采集这里,基本就是解析大淘客的数据,然后查询一下数据库是否有这个商品,如果存在的话,我们就更新它,如果不存在,我们就插入这个数据。具体代码如下:
function SysInfo($page) {
$caijiurl ="http://api.dataoke.com/index.php?r=Port/index&type=total&appkey=". tk_key ."&v=2&page=". $page;
$url = $caijiurl;
$info = getinfo($url);
$info = preg_replace('/\s/','', $info);
$info = str_replace('','', $info);
$resultinfo = json_decode($info, TRUE);
$totolnum = $resultinfo['data']['total_num'];
$page_all = $totolnum / 200 + 1;
$pnum = count($resultinfo['result']);
echo"正在同步第".$page."页...<br/>"."总页数:".$page_all."<br/>";
echo"请稍等,同步需要时间,如果长时间没有响应,返回链接数据库超时,请将参数的page的数字记录下来再同步";
$nd = array();
for ($i = 0; $i < $pnum; $i++) {
$info = $resultinfo['result'][$i];
$nd[$i]['name'] = $info['D_title'];
$nd[$i]['shopid'] = $info['GoodsID'];
$nd[$i]['image'] = $info['Pic'];
$nd[$i]['detail'] = $info['GoodsID'];
$nd[$i]['short_title'] = $info['D_title'];
$nd[$i]['cid'] = $info['Cid'];
$nd[$i]['Quan_link'] = $info['Quan_link'];
$nd[$i]['Quan_m_link'] = $info['Quan_m_link'];
$nd[$i]['Introduce'] = $info['Introduce'];
$nd[$i]['Jihua_shenhe'] = $info['Jihua_shenhe'];
$nd[$i]['Jihua_link'] = $info['Jihua_link'];
$nd[$i]['Commission_queqiao'] = $info['Commission_queqiao'];
$nd[$i]['Commission_jihua'] = $info['Commission_jihua'];
$nd[$i]['dsr'] = $info['Dsr'];
$nd[$i]['quan_price'] = $info['Quan_price'];
$nd[$i]['card_share'] = $info['Quan_m_link'];
$nd[$i]['card_link'] = $info['Quan_link'];
$nd[$i]['card_begin'] = $info['Quan_time'];
$nd[$i]['card_end'] = $info['Quan_time'];
$nd[$i]['card_money'] = $info['Quan_price'];
$nd[$i]['card_own'] = $info['Quan_surplus'];
//$nd[$i]['card_num'] = $info['card_num'];
$nd[$i]['card_id'] = $info['Quan_id'];
$nd[$i]['Quan_condition'] = $info['Quan_condition'];
$nd[$i]['product_from'] = $info['IsTmall'] == 1 ?"天猫":"淘宝";
$nd[$i]['saler_id'] = $info['SellerID'];
$nd[$i]['product_sale_count'] = $info['Sales_num'];
$nd[$i]['price'] = $info['Org_Price'];
$nd[$i]['after_price'] = $info['Price'];
$nd[$i]['product_rate'] = $info['Commission_jihua'];
$values ="'". implode("','", array_values($nd[$i])) ."'";
$keys ="`". implode("`,`", array_keys($nd[$i])) ."`";
$shopid_1 = $nd[$i]['shopid'];
$query = mysql_query("select * from yeehot_taobaoke_product where shopid='$shopid_1'");
//var_dump("select * from yeehot_taobaoke_product where shopid='".$shopid_1."'");
$num = mysql_num_rows($query);
//var_dump($num);
if ($num > 0) {
$sql ='update `yeehot_taobaoke_product` set ';
for ($m = 0; $m < count(array_keys($nd[$i])); $m++) {
if($m== (count(array_keys($nd[$i]))-1)){
$sql.=array_keys($nd[$i])[$m]."= '".array_values($nd[$i])[$m]."'";
}
else{
$sql.=array_keys($nd[$i])[$m]."= '".array_values($nd[$i])[$m]."', ";
}
}
$sql.=" where shopid =".$shopid_1;
} else {
$sql ='insert into `yeehot_taobaoke_product` ';
$sql .='('. $keys .') ';
$sql .='values ';
$sql .='('. $values .') ';
}
//var_dump($sql);
mysql_query($sql);
}
return $page_all;
}
最好,我们需要调用这个数据,这里,我想调用第一页,然后在根据第一页返回总的页数。然后通过循环更新页数
$page_all=SysInfo(1);
for ($j=1; $j <$page_all ; $j++) {
SysInfo($j);
sleep(5);
}
echo"<br/>同步完成";
这样,我们的同步商品优惠券的页面就开发完毕了
我也把最新的功能放上网站供大家测试了,同时也可以关注我的公众号,可以登录我的网站http://www.yeehot.com/右方有微信二维码。我也把商品详情的页面代码放上去,大家可以在源码下载找到这个代码下载
欢迎继续关注我的头条号:一点热,如果有什么问题,欢迎留言咨询,我看到之后会第一时间回复大家的。也欢迎收藏与转发,如果需要转载到其他网站,请与我联系,yeehot.com,如果有什么意见或者想法欢迎在下方留言。如果有什么不明白的话,可以自己给我留言了。
上一节我们说到如何利用淘宝联盟的API进行数据详情的展示,但是由于淘宝联盟本身会有访问的限制,那么我们可以利用大淘客的API进行数据详情的采集,不过我经常发现,大淘客的数据并不是与官网的数据是同步的,所以有一些数据根据商品的ID会提取不到产品的详情,这里如何解决我留到下一节再讨论,那么我们这个淘宝客系统是基于PHP+mysql+MUI环境开发,如果对环境安装不是很了解的话,可以自行了解一下,也可以给我留言。
源码我已经更新到官网上去了,点击源码下载就会进入淘宝客系统源码
http://www.yeehot.com/
整体效果如下:
那么我们这里首先是申请一个大淘客的APPKEY,具体地址http://www.dataoke.com/ucenter/myApi.asp
申请到后,我们可以获得一个appkey,有了这个APPKEY,我们可以利用大淘客提供的API进行操作
我们这里需要查询商品的详细信息,我们可以利用大淘客的详情API,阅读API的具体地址为
http://www.dataoke.com/personSetCms/index.php?r=api
看完文档后,知道请求示例:http://api.dataoke.com/index.php?r=port/index&appkey=您申请的appkey&v=xxx&id=xxx这样来操作,那么我们直接开始写代码了
就需要创建一个查询商品的PHP文件,我这里以dataokeproduct.php为例子
由于我们需要访问网络,所以我们可以利用PHP的curl来进行操作,代码如下
function getinfo($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
写好后,我们需要拼接访问的地址
http://api.dataoke.com/index.php?r=port/index&appkey=您申请的appkey&v=xxx&id=xxx
其中这里的v是我们采用json返回的数据,所以直接填2,id是我们商品的id,那么我们可以这些来获取整个json数据,并将它转换成数组。
$appkey = $dataoke_appkkey;
$id = $_GET['pid'];
$url ="http://api.dataoke.com/index.php?r=port/index&appkey=". $appkey ."&v=2&id=". $id;
$info = getinfo($url);
$info1 = json_decode($info, TRUE);
注意$dataoke_appkkey这个数据是由于我们为了方便大家配置,我创建了一个配置文件config.inc.php
里面可以全局配置变量,代码如下
<?php
//支付宝的AppKey
$zhifubao_appkkey="";
$zhifubao_secretKey="";
//大淘客的AppKey
$dataoke_appkkey="";
?>
了解这些后,我们可以就可以将刚刚返回的数组数据在mui上进行解析了代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>导购</title>
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="stylesheet" href="css/mui.min.css">
<link rel="stylesheet" href="css/app.css" />
<script src="js/jquery-3.1.1.min.js"></script>
</head>
<body>
<header id="header" class="mip2ea9a6bacd2610e1 mui-bar mui-bar-transparent">
<a class="mipa6bacd2610e17476 mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
<h1 class="mipcd2610e174762001 mui-title"></h1>
</header>
<div class="mip10e1747620012bfd mui-content">
<!--静态图片-->
<div class="mip3581e9dbf47dc428 product_info">
<?php
echo" <img src=\"". $info1['result']['Pic'] ."\">";
?>
</div>
<p style="margin: 30px 15px 20px;">
<?php
echo"". $info1['result']['Title'];
?>
</p>
</div>
<script src="js/mui.min.js"></script>
</body>
</html>
最好我们在index.php上加上我们点击商品的链接,部分代码如:
$link ="dataokeproduct.php?pid=".$row1['shopid'];
这样就可以进入到我们这个产品详情的页面了。
那么我们这里就讲到这里了,我也把最新的功能放上网站供大家测试了,测试地址
http://yeehot.com/DaoGou/index.php
同时也把源码放上去了,欢迎下载学习了
欢迎继续关注我的头条号:一点热,如果有什么问题,欢迎留言咨询,我看到之后会第一时间回复大家的。也欢迎收藏与转发,如果需要转载到其他网站,请与我联系,yeehot.com,如果有什么意见或者想法欢迎在下方留言
相关问答
淘宝联盟是跟百度竞价模式一样的,把你的宝贝排名做到前几名的位置,然后按点击付费每点击一次扣你愿意出的费用!也有按展现次数付费的,成本较高!淘宝客是宝...
要想成为一名淘客,首先需要有淘宝账号,或是阿里妈妈账号。2、电脑端右上角登录淘宝账号,选择“淘宝客”并打开3、点开“媒体合作”选择“淘宝联盟”4、页...
近两年来,淘宝客APP在国内应用市场火爆,什么日记,某逛,什么装,某集,某省,等等…一系列领券的APP一拥而入!随着做淘宝客的日益增多,QQ群,微信群,发单...近两...
淘宝不断壮大离不开淘宝客的功劳;淘宝客推广,都是依靠自己的平台来帮商家宝贝进行展现、引流的;刚开始如果没有淘宝客的推广方法和平台,商家...大家应该都知...
如果您想在大淘客上推广产品,可以按照以下步骤操作:1.注册成为大淘客会员:访问大淘客官方网站,注册成为会员。在注册过程中,需要填写相关的个人信息和店铺...
目前新手上路的模式也就只剩下了淘客代理APP模式。很多小白入行也会询问现在再做APP是不是已经晚了?实际情况是2020年正是...如下:1、手机网站做淘宝客手...
好单库和大淘客都是为淘宝客提供服务的平台,它们的主要目的是帮助淘宝客找到合适的商品进行推广,从而赚取佣金。尽管它们的目标相似,但在服务内容、功能和用户...
1、注册【团队】类型账号,身份证与账号绑定,一张身份证只能申请一个账号;2、注册【企业】类型账号,同一营业执照最多可认证3个账号,若同个公司同时提交四份...
免费的。我来教你。顺便给你一套软件,可以免费用。免费的。我来教你。顺便给你一套软件,可以免费用。
两个都不错吧,但要说真的好,一般都用折也的人哆一些,折也比交靠谱一些,希望我的回答对你有所帮助,两个都不错吧,但要说真的好,一般都用折也的人哆一些,折也比...