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基于queue和threading实现多线程下载实例
Oct 08 Python
Python实现二分查找与bisect模块详解
Jan 13 Python
一个基于flask的web应用诞生 组织结构调整(7)
Apr 11 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
Python中动态检测编码chardet的使用教程
Jul 06 Python
Python字符串拼接的几种方法整理
Aug 02 Python
Python中一些深不见底的“坑”
Jun 12 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
pycharm修改file type方式
Nov 19 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
python 画条形图(柱状图)实例
Apr 24 Python
如何在scrapy中集成selenium爬取网页的方法
Nov 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函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
Python reques接口测试框架实现代码
2020/07/28 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
装饰资料员岗位职责
2013/12/30 职场文书
银行演讲稿范文
2014/01/03 职场文书
企业内控岗位的职责
2014/02/07 职场文书
工程承诺书怎么写
2014/05/24 职场文书
结婚堵门保证书
2015/05/08 职场文书
消防演习感想
2015/08/10 职场文书
2016公司新年问候语
2015/11/11 职场文书
Nginx 常用配置
2022/05/15 Servers