前一阵有个朋友采集了一堆的淘宝客推广链接,但很多都是加密后的格式http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CITy7klxxrJ35Nnc0vWaHl37H18cjdMO0RFhunziOFb%2FYR38ThEJAQs2K2vhBq7dgXLmU%2BSx8tU3PLk9d5Pc2Up下文均简称此为淘客链接,朋友希望能转换成正常的淘宝链接,然后他再去自己的微博等地方单独推广这些商品。
他Google了一下,现有的大部分工具都是将普通的淘宝商品链接转换成淘宝客链接,没找到现成的工具可以反向操作的。朋友QQ问我有没办法实现,本来计划用c#写一个gui的工具给他,但他机器上没.net framework加上朋友对这些东西一知半解,还是用Python做了一个简单的实现这里就不放出最终的成品了,只放出操作的过程和核心的函数。
首先拿到一个淘宝客链接:淘客链接
然后在浏览器访问一下,抓一下中间跳转的过程:
挨个分析一下其中的调整以及逻辑就能反向解出正常的淘宝商品链接了。
我来按照上图的调整步骤挨个分析一下:
从咱们拿到的 淘客链接做了一个302跳转到 http://s.click.taobao.com/t_js?tu=http%3A%2F%2Fs.click.taobao.com%2Ft%3Fe%3DzGU34CA7K%252BPkqB07S4%252FK0CITy7klxxrJ35Nnc0vWaHl37H18cjdMO0RFhunziOFb%252FYR38ThEJAQs2K2vhBq7dgXLmU%252BSx8tU3PLk9d5Pc2Up%26ref%3D%26et%3DjFBB23s9VUPVFw%253D%253D这个地址。 因为此链接中有一个参数为tu,下文均称此链接为TU 跳转到 TU后,淘宝返回的页面内容为一堆HTML,HTML内容见 这里,然后将 TU中tu这个参数的内容做了
unescape
操作后用js做了一个跳转的操作实际上是用js生成了一个超链接 简称为ET,然后用js模拟点击了此链接
如果仔细观察 ET和咱们拿到的 淘客链接相比其实只增加了两个参数
ref
和
et
,但是实际操作中如果仅仅手动增加这两个参数是不行的……这个链接有一个隐藏的参数即Referer
从图片中能看到 ET这个链接就会跳转到正常的 淘宝商品页面,url中仅仅是增加了一个参数
ali_trackid
所以实际操作中咱们只要能拿到TU链接,然后
unescape
出tu参数得到ET,然后带上Referer(== TU)然后跳转到ET,再将最终的 淘宝商品页面最后一个参数
ali_trackid
去掉就是一个完全正常的淘宝商品链接了。
# -*- coding:utf-8 -*-
import requests, sys, urllib
reload(sys)
sys.setdefaultencoding('utf-8')
url = 'http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CITy7klxxrJ35Nnc0vWaHl37H18cjdMO0RFhunziOFb%2FYR38ThEJAQs2K2vhBq7dgXLmU%2BSx8tU3PLk9d5Pc2Up'
def get_real_taobao(url):
_refer = requests.get(url).url
headers = {'Referer': _refer}
return requests.get(urllib.unquote(_refer.split('tu=')[1]), headers=headers).url.split('&ali_trackid=')[0]
rel = get_real_taobao(url)
print rel