分享一个常用的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中for语句简单遍历数据的方法
May 07 Python
python strip() 函数和 split() 函数的详解及实例
Feb 03 Python
python批量替换页眉页脚实例代码
Jan 22 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
Python 使用type来定义类的实现
Nov 19 Python
pandas中的数据去重处理的实现方法
Feb 10 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
详解python中的闭包
Sep 07 Python
python各种excel写入方式的速度对比
Nov 10 Python
python中threading和queue库实现多线程编程
Feb 06 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
php数组编码转换示例详解
2014/03/11 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
jQuery操作css样式
2017/05/15 jQuery
ES6入门教程之let和const命令详解
2017/05/17 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
python Django批量导入数据
2016/03/25 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
python实现用户管理系统
2018/01/10 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
电工技术比武方案
2014/05/11 职场文书
日语专业求职信
2014/07/04 职场文书
自我推荐信怎么写
2015/03/24 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
集结号观后感
2015/06/08 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers