分享一个常用的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 Web开发框架Django
Jun 30 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
一篇文章快速了解Python的GIL
Jan 12 Python
python SMTP实现发送带附件电子邮件
May 22 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
Python基于百度云文字识别API
Dec 13 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
python 类之间的参数传递方式
Dec 20 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
详解Python IO编程
Jul 24 Python
Python内置包对JSON文件数据进行编码和解码
Apr 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
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
PHP6新特性分析
2016/03/03 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
全面解读Python Web开发框架Django
2014/06/30 Python
Python安装第三方库的3种方法
2015/06/21 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
python3实现网页版raspberry pi(树莓派)小车控制
2020/02/12 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
会计学个人自荐信模板
2013/12/13 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
师德师风个人总结
2015/02/06 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python