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基础之内置函数和递归
Jun 21 Python
Python探索之ModelForm代码详解
Oct 26 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
在CMD命令行中运行python脚本的方法
May 12 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
ubuntu上安装python的实例方法
Sep 30 Python
利用Python校准本地时间的方法教程
Oct 31 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
Python如何读写字节数据
Aug 05 Python
详解python 支持向量机(SVM)算法
Sep 18 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
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
javascript String 对象
2008/04/25 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
python SVD压缩图像的实现代码
2019/11/05 Python
python获取引用对象的个数方式
2019/12/20 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
校园安全广播稿范文
2014/09/25 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python
java解析XML详解
2021/07/09 Java/Android
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python