如何使用PHP采集大淘客优惠券到网站,同步到WordPress网站
最近在開發一套淘寶客系統軟件,在解決各種的問題,導致沒有空寫文章,看了很多朋友都問這個數據如何導入到數據庫里面,那么今天我就以同步大淘客的數據作為例子,講解一下如何把數據同步到本地數據庫中。如果對我這個課程感興趣的話,可以訂閱我的頭條號:一點熱,也歡迎大家在下方的討論區討論。
既然是以大淘客的數據為例子,那么我們需要的就是大淘客的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();//設置選項,包括URLcurl_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/>同步完成”;這樣,我們的同步商品優惠券的頁面就開發完畢了
總結
以上是生活随笔為你收集整理的如何使用PHP采集大淘客优惠券到网站,同步到WordPress网站的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用js压缩html代码,使用ugl
- 下一篇: STM32 STM8 GD32 脱机烧