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的Flask框架下使用sqlalchemy库的简单教程
Apr 09 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
Sep 30 Python
基于Python socket的端口扫描程序实例代码
Feb 09 Python
python中matplotlib的颜色及线条控制的示例
Mar 16 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
Python不同目录间进行模块调用的实现方法
Jan 29 Python
Python3安装Pillow与PIL的方法
Apr 03 Python
Python3.5运算符操作实例详解
Apr 25 Python
pybind11在Windows下的使用教程
Jul 04 Python
python读写文件write和flush的实现方式
Feb 21 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 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(5) 类和对象
2010/02/16 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
如何开发出更好的JavaScript模块
2017/12/22 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
python实现将元祖转换成数组的方法
2015/05/04 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
详解python中的index函数用法
2019/08/06 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
党员岗位承诺书
2014/03/25 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
nginx请求限制配置方法
2021/07/09 Servers
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang