分享一个常用的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写一个无界面的2048小游戏
May 24 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
python实现C4.5决策树算法
Aug 29 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
超实用的 30 段 Python 案例
Oct 10 Python
python线程信号量semaphore使用解析
Nov 30 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
Python-openCV读RGB通道图实例
Jan 17 Python
Django中的DateTimeField和DateField实现
Feb 24 Python
请求模块urllib之PYTHON爬虫的基本使用
Apr 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读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
python添加模块搜索路径方法
2017/09/11 Python
python实现定时提取实时日志程序
2018/06/22 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
Python 私有化操作实例分析
2019/11/21 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
运动会广播稿100字
2014/01/11 职场文书
闭幕式主持词
2014/04/02 职场文书
公司董事长岗位职责
2014/06/08 职场文书
2015年教师节慰问信
2015/03/23 职场文书
python实现简易名片管理系统
2021/04/11 Python
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android