1. 程式人生 > >使用 Python 全棧打造淘寶客微信機器人(上)

使用 Python 全棧打造淘寶客微信機器人(上)

機器人 Python 淘寶客服 人工智能 AI

本篇 將會涉及:

  • Python 環境下淘寶客 API 的使用;

  • 使用 Python 第三方模塊 itchat 實現微信的登錄的自動回復操作;

  • PyQt5 的布局管理與多線程應用

1 、前言

1.1、什麽是淘寶客

相信很多人都聽過或者接觸過各類導購 APP、QQ 群、微信群分享一些淘寶商品的優惠券或是其他的優惠信息。

技術分享圖片

技術分享圖片

用戶可以在這些渠道上獲取到相較於從淘寶平臺搜索出來的商品更加優惠的價格或者是領取到面額較大的優惠券。

這些渠道,都是屬於淘寶客的渠道。淘寶客是淘寶平臺推出的一種按成交計費的推廣模式,通常也指通過這種模式賺錢的人。

前幾年淘寶客紅火的時候,各類導購網站、導購 APP 以及優惠券 QQ 群、微信群層出不窮,如今倒是稍顯平淡了。雖說淘寶客在蜂擁的互聯網上平淡了起來,但是絲毫影響不了新加入的人群的心態,在淘寶網在搜索 “微信人導購機器”,還可以看到很多商家在售賣淘寶客的微信機器人:

技術分享圖片

這些微信機器人的功能其實主要也是自動回復群內的人的消息,以及定時推送一些優惠商品信息等。

今天,我們就使用哪哪都會出現,哪哪都行的大蟒蛇——Python,來打造一個淘寶客微信機器人,實現在群聊中自動回復搜索並返回商品這一淘寶客導購微信機器人最基本的功能。

1.2、 註冊成為淘寶客

要寫一個淘寶客的微信機器人,我們首先需要成為一個淘寶客,才能獲取到淘寶客相關的優惠資源。方法很簡單,在淘寶客的推廣平臺——阿裏媽媽淘寶聯盟(http://pub.alimama.com/)上註冊一個一個帳號即可,我們可以使用淘寶的賬號進行登錄。

技術分享圖片

在登錄之後,我們可以在 “我的聯盟” 中的 “推廣管理” 中進行推廣媒體的設置:

技術分享圖片

在其中,我們可以添加網站、APP、導購、軟件的推廣等。在此,我已經添加了一個網站的媒體,並且已經提交驗證成功了。推廣媒體是淘寶客中一個基本的推廣商品渠道,用於歸屬不同的推廣位,如果沒有推廣媒體,就沒有辦法創建推廣位,進而無法進行淘寶客的推廣。大家可以按照自己的情況創建推廣媒體,推薦使用網站推廣媒體。

在創建好推廣媒體之後,我們還需要創建一個推廣位,推廣位用於歸屬具體的淘寶客推廣商品,在此我已經創建了網站的推廣位,其中的 PID 在我們後面調用 API 接口的時候會使用到,大家註意一下:

技術分享圖片

如果沒有推廣位,那麽我們可以在 “聯盟產品” 中點擊 “精選清單” 的立即下載按鈕:

技術分享圖片

其會讓我們選擇推廣位,這時候可以新建一個推廣位:

技術分享圖片

這樣我們就獲得了一個推廣網站的推廣位。

再回到推廣媒體管理上,在我們添加的網站媒體通過了阿裏媽媽的驗證成功後,我們會得到一個聯盟合作網站的 API:

點擊 “查看” 鏈接,會跳轉到阿裏開放平臺上我們創建的網站推廣位(推廣位為在阿裏開放平臺上顯示為一個應用)的概覽中,其中顯示了我們的應用接口信息,接口數據和我們獲得的權限 API 等:

技術分享圖片

APP 證書中的 App Key 和 App Secret 會在調用 api 接口時作為憑證來認證,下方的功能場景中顯示我們獲取的 API 接口:在這裏我的應用有:

  • 淘寶客基礎 API

  • 淘寶客 - 媒體 - 內容消息

  • 淘口令基礎包

  • 淘寶客 - 工具 - 超級搜索

其中淘寶客基礎 API 中包含了其他的一些接口的,我們主要使用這個 API 包。

這樣,我們就可以開始通過 API 接口獲取到淘寶客的推廣信息。

2、Python 環境下使用淘寶客 API

在註冊成為淘寶客,添加推廣位獲取到淘寶客的基礎 API 之後,我們就可以通過調用淘寶客的 API 來獲取淘寶客推廣信息了。

2.1 、了解淘寶客接口

在調用淘寶客的 API 之前,我們先來看一下,在提交網站推廣位之後獲得的淘寶客基礎 API 中都有些什麽接口:

技術分享圖片

其中一共有 23 個接口,雖然是一個基礎 API 包,但還是包含了淘寶客推廣商品中的大多數信息的獲取。在本篇 Chat 介紹創建的淘寶客微信機器人中,我們主要使用以下兩個接口:

  • 好券清單 API【導購】taobao.tbk.dg.item.coupon.get

  • 淘寶客淘口令 taobao.tbk.tpwd.create

其他的 api 接口大家可以根據自己的需要添加在程序中。

好券清單 API 用於返回淘寶客商品的優惠券信息,我們可以通過其來搜索特定關鍵詞下的商品的優惠券,以作為結果返回給用戶。其接受的參數如下:

技術分享圖片

淘寶客淘口令 API,用於將淘寶客推廣鏈接轉換為淘口令,以實現復制優惠券信息後,打開淘寶就能跳轉到推廣鏈接的效果。其接受的參數如下:

技術分享圖片

可以發現,我們主要使用 adzoneid、淘口令彈框內容和淘口令跳轉的目標鏈接三個參數,其中 adzoneid 可以從推廣位的 PID 中獲取,淘口令彈框內容可以設置為商品的標題,淘口令跳轉的目標鏈接則是優惠券的鏈接地址,這兩個參數都可以從好券清單 API 中獲取到。下面我們來看看如何調用這兩個接口。

2.2、調用淘寶客 API 接口

在 API 接口的介紹中,我們可以看到其中有多種語言的請求實例,如下所示:

技術分享圖片

最幸運的是,其提供了 Python 的請求示例,這樣我們可以稍微修改一下示例代碼(示例中為 Python2 版本的代碼)就能對淘寶客的 API 進行調用了,是不是很美好?

雖然看起來很美好,但是我們還是需要額外做一些工作。

下載阿裏提供的 SDK

看到示例代碼中的第 2 行引入了一個 top.api 的模塊,這個模塊屬於阿裏開放平臺提供的 SDK,使用 pip 等 Python 包管理工具並不能下載安裝。在阿裏開發平臺的每個應用中,都提供了相應的 SDK 的下載鏈接,我們選擇 “Python 版本”,在點擊下載即可。

技術分享圖片

下載完成的 SDK 是一個名為 “sdk-python-*” 的壓縮包,其中還有一個壓縮包和一個空的文件夾:

技術分享圖片

我們需要的 top 模塊就在 taobao-sdk-PYTHON-auto 那個壓縮包中,繼續解壓,得到以下文件:

技術分享圖片

面對一個陌生的包,好的習慣當然是查看 readme 之類的文件來知曉使用方法,我們打開 READ_ME.TXT 文件,裏面的內容不多,但說明了 top 模塊如何使用:復制 top 文件夾到自己的 Python 項目路徑下,讓 Python 執行器能夠引入這個 top 包即可。

技術分享圖片

得到了淘寶客的 SDK 模塊以及模塊的使用方法後,我們似乎可以開幹了。如果你和我一樣,使用的是 Python 3 的話,那麽可以還需要再等等。

因為阿裏開放平臺提供的這個 SDK 是 Python 2 版本的,直接在 Python 3 環境下調用會報錯,而報錯的主要位置都位於 top 文件夾的 api 文件夾下的 base.py 這個文件:

技術分享圖片

我們需要對其進行代碼風格和規範的轉換,可以使用 Python 官方提供的 2to3.py 這個工具。

這一步完成之後,我們的準備工作就已經結束了。下面使用 Python 來調用一下淘寶客的接口。

調用淘寶客 API

當前,我們的項目目錄如下所示:

技術分享圖片

在項目主文件夾下,只有一個淘寶客的 top 包,我們新建一個 Python 文件,用於調試調用淘寶客的 API:

技術分享圖片

首先在 usetbkapi.py 文件中引入淘寶客的包——top,並且定義好公共參數(App Key 和 App Secret,兩者從阿裏開放平臺 - 應用的概覽中獲取)和好券清單需要的 adzoneid(淘寶聯盟 - 推廣位管理 - 推廣位的 PID 中 mmxxxxxxxxx 的第三位):

技術分享圖片

首先是好券清單的 API,在阿裏開放平臺的 API 文檔中,其請求示例如下所示:

技術分享圖片

我們將其修改一下,變成了如下形式:

技術分享圖片

函數 gettbkcoupon() 接受一個參數作為淘寶客商品優惠券的搜索詞,我們運行一下這個函數,以 “Python” 作為搜索詞看看返回的結果:技術分享圖片

請求成功,最後得到一個包含 5 個商品信息的 json:

技術分享圖片

因為我們查詢的是默認的服裝類目下的商品,所以返回了 5 個商品標題中含有 “Python” 的服裝負責商品,我們註意一下商品信息中的字段

技術分享圖片

通過返回的這些信息,我們就可以制作一個簡單的商品信息,這裏暫且不表。

在電腦上點擊打開,顯示的就是我們在淘寶軟件中常見的優惠券頁面了:

技術分享圖片

接著來看看淘口令 API。

淘口令是淘寶的一種推廣方式,專門針對於無線端的商品推廣。淘口令在手機上復制之後,打開淘寶軟件,就會自動跳轉到淘口令的目標鏈接。所以淘口令相當於淘寶軟件的一個暗號,既避免了其他平臺對淘寶客鏈接的封殺,也方便推廣和傳播。一般淘寶聯盟自動生成的淘口令推廣信息如下圖:

技術分享圖片

我們現在使用淘口令 API 來生成淘寶客商品優惠券的淘口令。

其請求的參數接受兩個必選參數和三個可選參數,參數信息如下:

技術分享圖片

在此我們用商品標題作為參數 text 的值,商品的優惠券鏈接作為參數 url 的值,可選參數中用我本人的頭像作為淘口令彈框的 logo。

請求成功的話,其會返回形如下所示的 json:

技術分享圖片

其中的 model 值就是生成的淘口令。

淘口令 API 的請求示例為:技術分享圖片

我們同樣將其修改一下,方便傳遞參數和調用,修改後的淘口令請求如下所示:

技術分享圖片

接下來,我們將代碼整理一下,在獲取商品優惠券的 gettbkcoupon() 函數中調用生成商品淘口令的 generate_ttoken() 函數,完整代碼如下:

技術分享圖片

.

技術分享圖片

技術分享圖片

最後得到每個商品的商品標題,商品優惠券鏈接和商品優惠券的淘口令:


技術分享圖片

返回的結果中,每一個以人民幣符號起始和結束的就是淘口令

寫到這我打一波廣告,

技術分享圖片

想要學習的可以考慮,歡迎等下波客服機器人更新,歡迎訂閱


使用 Python 全棧打造淘寶客微信機器人(上)