分享一个常用的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实现简单的可逆加密程序实例
Mar 05 Python
Ubuntu下安装PyV8
Mar 13 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
python音频处理用到的操作的示例代码
Oct 27 Python
Python切片操作实例分析
Mar 16 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
浅析Python四种数据类型
Sep 26 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
Django实现简单网页弹出警告代码
Nov 15 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
Python 中的单分派泛函数你真的了解吗
Jun 22 Python
python库sklearn常用操作
Aug 23 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+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
smarty内置函数section的用法
2015/01/22 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
Javascript开发包大全整理
2006/12/22 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
js+html制作简单验证码
2017/02/16 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
python实现哈希表
2014/02/07 Python
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
法律专业自我鉴定
2013/10/03 职场文书
模具专业推荐信
2013/10/30 职场文书
中专毕业生自荐信范文
2013/11/28 职场文书
护理个人求职信范文
2014/01/08 职场文书
八年级数学教学反思
2014/01/31 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
借条如何写
2015/05/26 职场文书
工作年限证明范本
2015/06/15 职场文书
合理化建议书范文
2015/09/14 职场文书
Django实现翻页的示例代码
2021/05/24 Python
Django+Celery实现定时任务的示例
2021/06/23 Python
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python