Nodejs 接口之 解析淘宝客短链
给你一个淘宝客的短链,如果获取他跳转后的地址,这是我最近在做个一个程序,使用node开发总体来说还是挺简答的。
大概说下流程
第一步:解析出这个短链最终的真实地址
我的第一个想法是,是不是需要啥啥接口才可以哇。但是我又想,这也太麻烦了,如果我访问了这个链接是不是就可以得到真实的链接了。好,到网上找到了一个request库,还是有实例哦,简单的不要不要的,赶紧弄了下,果然是有结果的。
1 | var r = request(url, function(err, res, body) { |
可以了。地址拿到了,用浏览器打开试试,结果还是有问题,这个地址不是产品的真实地址,还是要做一个跳转的,好吧。
我又想,这个页面究竟是个啥,打开一看,其实里面就是个js函数,执行了就简单了,这个对于node来说真实小菜一碟哇。
突然让我想起来urllib这个库,嗯,不错很好用的。
开始用的时候,直接请求就以为能得到结果了,结果不是的,还需要在请求中加上referer,哈哈,也许是个漏洞吧,这样我就能解析出真实的地址了。
那先解决第一个问题就是node如何营造一个dom的环境,玩过dom的人肯定知道jsdom啦,然后在进行urllib请求根据302跳转获取到。
1 | jsdom.env(uri, function(err, window) { |
之后就是获取最终headers里面的location
1 | var urlRes = urllib.request(real_jump_address, { |