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出现segfault错误解决方法
Apr 16 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
在python中实现对list求和及求积
Nov 14 Python
Python实现的文轩网爬虫完整示例
May 16 Python
python读写csv文件的方法
Aug 13 Python
python机器学习包mlxtend的安装和配置详解
Aug 21 Python
python实现连续变量最优分箱详解--CART算法
Nov 22 Python
如何在scrapy中集成selenium爬取网页的方法
Nov 18 Python
全网最全python库selenium自动化使用详细教程
Jan 12 Python
Python中Pyspider爬虫框架的基本使用详解
Jan 27 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 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
通过html表格发电子邮件
2006/10/09 PHP
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
php验证码生成器
2017/05/24 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
基于pip install django失败时的解决方法
2018/06/12 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
学校春季防火方案
2014/06/08 职场文书
立志成才演讲稿
2014/09/04 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
python 中的jieba分词库
2021/11/23 Python
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers