分享一个常用的Python模拟登陆类


Posted in Python onMarch 29, 2015

代码非常简单,而且注释也很详细,这里就不多废话了

tools.py

# -*- coding:utf8 -*-
'''
# =============================================================================
#   FileName: tools.py
#     Desc: 模拟浏览器
#    Author: cosven
#     Email: yinshaowen241@gmail.com
#   HomePage: www.cosven.com
#    Version: 0.0.1
#  LastChange: 2015-03-27 00:59:24
#    History:
# =============================================================================
'''
 
 
import urllib
import urllib2
import cookielib
 
 
class MyWeb():
  """
    模拟一个浏览器
  """
  def __init__(self):
    self.header = {
      'Host': 'music.163.com',
      'Content-Type': "application/x-www-form-urlencoded; charset=UTF-8",
      'Referer': 'http://music.163.com/song?id=26599525',
      "User-Agent": "Opera/8.0 (Macintosh; PPC Mac OS X; U; en)"
    }
    self.cookie = cookielib.LWPCookieJar()
    self.cookie_support = urllib2.HTTPCookieProcessor(self.cookie)
    self.opener = urllib2.build_opener(self.cookie_support,
                      urllib2.HTTPHandler)
    urllib2.install_opener(self.opener)
 
  def post(self, posturl, dictdata):
    """
    模拟post请求
 
    :param string posturl: url地址
    :param dict dictdata: 发送的数据
    """
 
    postdata = urllib.urlencode(dictdata)
    request = urllib2.Request(posturl, postdata, self.header)
    try:
      content = urllib2.urlopen(request)
      return content
    except Exception, e:
      print ("post:" + str(e))
      return None
 
  def get(self, url):
    """
    模拟get请求
 
    :param url: url地址
    :return content: 常使用read的方法来读取返回数据
    :rtype : instance or None
    """
    request = urllib2.Request(url, None, self.header)
    try:
      content = urllib2.urlopen(request)
      return content
    except Exception, e:
      print ("open:" + str(e))
      return None
 
 
if __name__ == "__main__":
  import hashlib
  web = MyWeb()
  url = 'http://music.163.com/api/login/'
  data = {
    'username': 'username', # email
    'password': hashlib.md5('password').hexdigest(), # password
    'rememberLogin': 'true'
  }
  res = web.post(url, data)
  print res.read()
  # url_add = 'http://music.163.com/api/playlist/manipulate/tracks'
  # data_add = {
  #   'tracks': '26599525', # music id
  #   'pid': '16199365',  # playlist id
  #   'trackIds': '["26599525"]', # music id str
  #   'op': 'add'  # opation
  # }
  # res_add = web.post(url_add, data_add)
  # print res_add.read()
 
  # 完了可以试着查看自己网易云音乐相应列表歌曲

以上就是本文给大家分享的代码了,希望大家能够喜欢,也希望能够对大家学习Python有所帮助。

Python 相关文章推荐
Python中使用PyHook监听鼠标和键盘事件实例
Jul 18 Python
Python中使用select模块实现非阻塞的IO
Feb 03 Python
python实现telnet客户端的方法
Apr 15 Python
详解Python中的各种函数的使用
May 24 Python
python 连接sqlite及简单操作
Jun 30 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
python多线程并发让两个LED同时亮的方法
Feb 18 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
python数据预处理方式 :数据降维
Feb 24 Python
openCV提取图像中的矩形区域
Jul 21 Python
全网最全python库selenium自动化使用详细教程
Jan 12 Python
python实现查询IP地址所在地
Mar 29 #Python
python实现定时播放mp3
Mar 29 #Python
Python实现设置windows桌面壁纸代码分享
Mar 28 #Python
Python中的类与对象之描述符详解
Mar 27 #Python
深入理解Javascript中的this关键字
Mar 27 #Python
Python运用于数据分析的简单教程
Mar 27 #Python
Python中下划线的使用方法
Mar 27 #Python
You might like
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
PHP中的类型约束介绍
2015/05/11 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
python数据结构之二叉树的遍历实例
2014/04/29 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
python实现kNN算法
2017/12/20 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
Python爬虫文件下载图文教程
2018/12/23 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
公司承诺书范文
2014/05/19 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
个人委托书如何写
2014/09/25 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
红歌会主持词
2015/07/02 职场文书
python实现商品进销存管理系统
2022/05/30 Python