将淘宝客链接转换为正常淘宝、天猫商品链接

前一阵有个朋友采集了一堆的淘宝客推广链接,但很多都是加密后的格式http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CITy7klxxrJ35Nnc0vWaHl37H18cjdMO0RFhunziOFb%2FYR38ThEJAQs2K2vhBq7dgXLmU%2BSx8tU3PLk9d5Pc2Up下文均简称此为淘客链接,朋友希望能转换成正常的淘宝链接,然后他再去自己的微博等地方单独推广这些商品。

他Google了一下,现有的大部分工具都是将普通的淘宝商品链接转换成淘宝客链接,没找到现成的工具可以反向操作的。朋友QQ问我有没办法实现,本来计划用c#写一个gui的工具给他,但他机器上没.net framework加上朋友对这些东西一知半解,还是用Python做了一个简单的实现这里就不放出最终的成品了,只放出操作的过程和核心的函数

首先拿到一个淘宝客链接:淘客链接

然后在浏览器访问一下,抓一下中间跳转的过程:

淘宝客链接跳转过程

挨个分析一下其中的调整以及逻辑就能反向解出正常的淘宝商品链接了。

我来按照上图的调整步骤挨个分析一下:

  1. 从咱们拿到的淘客链接做了一个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
  2. 跳转到TU后,淘宝返回的页面内容为一堆HTML,HTML内容见这里,然后将TU中tu这个参数的内容做了unescape操作后用js做了一个跳转的操作实际上是用js生成了一个超链接简称为ET,然后用js模拟点击了此链接
  3. 如果仔细观察ET和咱们拿到的淘客链接相比其实只增加了两个参数refet但是实际操作中如果仅仅手动增加这两个参数是不行的……这个链接有一个隐藏的参数即Referer
  4. 从图片中能看到ET这个链接就会跳转到正常的淘宝商品页面,url中仅仅是增加了一个参数ali_trackid
  5. 所以实际操作中咱们只要能拿到TU链接,然后unescape出tu参数得到ET,然后带上Referer(== TU)然后跳转到ET,再将最终的淘宝商品页面最后一个参数ali_trackid去掉就是一个完全正常的淘宝商品链接了。

写了这么一堆实际上用Python实现起来只有短短几行就搞定了:

# -*- 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

已有36条评论 »

  1. 乔建辉

    340549808加我扣扣,有偿修改

  2. 乔建辉

    加我有偿修改

  3. 呃呃呃女

    我也是这么做的,返回是false

  4. java弄好,谢谢提供思路。

  5. amoy

    c#实现了,但是不稳定,有时候可以获取到,有时获取不到,求解

  6. wer

    第一步:访问淘客链接,经过302跳转。在返回的协议头里面得到,Location:的值。就是博主说的tu链接。第二步:将tu链接http://s.click.taobao.com/t_js?tu=,这个后面的链接提取出来,进行URL解码。第三步:访问上面被解码出来的链接,然后协议头里面记得带上Referer:tu链接。也是302访问,协议头里面的Location:值就是正常链接。

  7. ccaw

    经过我30编的仔细观察。博主说的“然后带上Referer(==TU)然后跳转到ET”意思就是说,当我们得到tu的链接的时候,再后面跳转et的时候,协议头里面加上。Referer:http://s.click.taobao.com/...(这个就是TU链接)

  8. ccaw

    我先说,你们这些C++的程序员都看不懂。我一个写易语言的更看不懂了。求通俗化!

  9. David

    然后带上Referer(==TU)这个地方的意思是把Referer的值设为TU。Referer为http报文头部的一个参数,C#里面可以通过HttpWebRequest的Referer设置

  10. 无语网上

    你好,请问如何用PHP将正常的淘宝、天猫商品链接转换为淘客推广链接呢?有偿的,1140863582这是我QQ

  11. 阿赞

    你好,请问淘客连接怎么转换淘宝连接?

  12. 可以发一下你的php版本给我么?

  13. 博主你好,可以把发一个php版本的么,Python看不懂耶!

  14. ethan

    回来做个总结..phpstudy和upupwcurl_getinfo获取的数据不同...导致写了两份代码......不知道什么原因...有知道的.t下...1045310502

  15. ethan

    感谢.改版为php成功.

  16. 用c#已经完成实现!有需要的联系我Q431260779

  17. 求救!求加QQ472447234给你费用帮我改一下

  18. 加下我QQ可以给你费用275370249

  19. hdc

    多谢,用php改写成功!

  20. 刘宝

    能给个成品吗,有偿。批量将淘宝客链接转为普通商品链接。

添加新评论 »