python模拟登陆阿里妈妈生成商品推广链接


Posted in Python onApril 03, 2014

淘宝官方有获取商品推广链接的API,但该API属于增值API 普通开发者没有调用权限 需要申请开通

备注:登陆采用的是阿里妈妈账号登陆非淘宝账号登陆

#coding:utf-8
__author__ = 'liukoo'
import urllib,urllib2,cookielib,re
from hashlib import md5
class alimama:
    def __init__(self):
        self.header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36'}
        #cookie 支持
        self.cookie_handle = cookielib.CookieJar()
        self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie_handle))
        urllib2.install_opener(self.opener)
    #登陆
    def login(self,username,passwd):
        login_data = {
            'logname':'',
            'originalLogpasswd':'',
            'logpasswd':'',
            'proxy':'',
            'redirect':'',
            'style':''
        }
        login_data['logname'] =username
        login_data['originalLogpasswd'] =passwd
        login_data['logpasswd'] = md5(login_data['originalLogpasswd']).hexdigest()
        source = urllib2.urlopen('http://www.alimama.com/member/minilogin.htm').read()
        token_list = re.findall(r"input name='_tb_token_' type='hidden' value='([a-zA-Z0-9]+)'", source)
        login_data['_tb_token_'] = token_list[0] if token_list else ''
        loginurl = 'https://www.alimama.com/member/minilogin_act.htm'
        #拼接post数据
        login_data = urllib.urlencode(login_data)
        self.header['Referer'] = 'http://www.alimama.com/member/minilogin.htm'
        try:
            req = urllib2.Request(url=loginurl,data=login_data,headers=self.header)
            resp =urllib2.urlopen(req)
            html = resp.read()
            if str(resp.url).find('success')!=-1:
                return True
        except Exception,e:
            print e
            return False
    #获取商品的推广链接
    def getUrl(self,url):
        try:
            item_id = re.search(r"id=(\d+)",url)
            item_id = item_id.group(1)
            html = urllib2.urlopen('http://u.alimama.com/union/spread/common/allCode.htm?specialType=item&auction_id='+item_id).read()
            rule = re.compile(r"var clickUrl = \'([^\']+)")
            return rule.search(html).group(1)
        except Exception,e:
            print e
            return False
#example
# ali = alimama()
# if ali.login('admin@liuko.com','xxxxxx'):
#     url = ali.getUrl('http://item.taobao.com/item.htm?spm=a1z10.1.w4004-1205618817.6.Evkf6O&id=19322457214')
#     if url:
#         print url
#     else:
#         print '获取推广链接失败'
# else:
#     print '登陆失败'
Python 相关文章推荐
python编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
Python中正则表达式的用法实例汇总
Aug 18 Python
python sys.argv[]用法实例详解
May 25 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
对python文件读写的缓冲行为详解
Feb 13 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
简单了解python元组tuple相关原理
Dec 02 Python
TensorFlow 读取CSV数据的实例
Feb 05 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
Jan 09 Python
pycharm 快速解决python代码冲突的问题
Jan 15 Python
python爬虫爬取某网站视频的示例代码
Feb 20 Python
Python 多线程处理任务实例
Nov 07 Python
python多线程抓取天涯帖子内容示例
Apr 03 #Python
python局域网ip扫描示例分享
Apr 03 #Python
python实现数通设备tftp备份配置文件示例
Apr 02 #Python
python实现巡检系统(solaris)示例
Apr 02 #Python
python实现apahce网站日志分析示例
Apr 02 #Python
python实现数通设备端口监控示例
Apr 02 #Python
使用python解析xml成对应的html示例分享
Apr 02 #Python
You might like
3种平台下安装php4经验点滴
2006/10/09 PHP
如何在PHP程序中防止盗链
2008/04/09 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
python三引号输出方法
2019/02/27 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
python 实现线程之间的通信示例
2020/02/14 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
C语言面试题
2015/10/30 面试题
建筑工程专业学生的自我评价
2013/12/25 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
八项规定整改措施
2014/02/12 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
廉洁使者实施方案
2014/03/29 职场文书
经济管理专业求职信
2014/06/09 职场文书
坎儿井导游词
2015/02/09 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
公司仓库管理制度
2015/08/04 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android