分享一个常用的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 相关文章推荐
解决python3在anaconda下安装caffe失败的问题
Jun 15 Python
python利用sklearn包编写决策树源代码
Dec 21 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
对python 自定义协议的方法详解
Feb 13 Python
Falsk 与 Django 过滤器的使用与区别详解
Jun 04 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
将labelme格式数据转化为标准的coco数据集格式方式
Feb 17 Python
Python中return函数返回值实例用法
Nov 19 Python
OpenCV-Python实现图像平滑处理操作
Jun 08 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 eval函数使用介绍
2013/12/08 PHP
php中rename函数用法分析
2014/11/15 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
p5.js临摹旋转爱心
2019/10/23 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
virtualenv实现多个版本Python共存
2017/08/21 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
护理专业个人求职简历的自我评价
2013/10/13 职场文书
教师应聘个人求职信
2013/12/10 职场文书
学子宴答谢词
2014/01/25 职场文书
人事任命书格式
2014/06/05 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书