分享一个常用的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中用于计算指数的exp()方法
May 14 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
Feb 11 Python
Windows环境下python环境安装使用图文教程
Mar 13 Python
python学习基础之循环import及import过程
Apr 22 Python
Python动态导入模块的方法实例分析
Jun 28 Python
Django代码性能优化与Pycharm Profile使用详解
Aug 26 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
Python3实现二叉树的最大深度
Sep 30 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
解决PDF 转图片时丢文字的一种可能方式
Mar 04 Python
浅析Django接口版本控制
Jun 26 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
一个很不错的PHP翻页类
2009/06/01 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
DEFER怎么用?
2006/07/01 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
Python中设置变量访问权限的方法
2015/04/27 Python
Python计算一个文件里字数的方法
2015/06/15 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
python实现音乐下载的统计
2018/06/20 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
python能做什么 python的含义
2019/10/12 Python
Python random模块的使用示例
2020/10/10 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
墨西哥网上超市:Superama
2018/07/10 全球购物
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
实习生体会的自我评价范文
2013/11/28 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
详解Python函数print用法
2021/06/18 Python