分享一个常用的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通过get,post方式发送http请求和接收http响应的方法
May 26 Python
python创建临时文件夹的方法
Jul 06 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
Nov 29 Python
TensorFlow梯度求解tf.gradients实例
Feb 04 Python
pandas和spark dataframe互相转换实例详解
Feb 18 Python
python遍历路径破解表单的示例
Nov 21 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 Python
pycharm debug 断点调试心得分享
Apr 16 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中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
file_get_contents("php://input", "r")实例介绍
2013/07/01 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
解析Python中的异常处理
2015/04/28 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
pandas中去除指定字符的实例
2018/05/18 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
python3转换code128条形码的方法
2019/04/17 Python
详解Python字符串切片
2019/05/20 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Python如何计算语句执行时间
2019/11/22 Python
Python实现验证码识别
2020/06/15 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
物业管理个人自我评价
2013/11/08 职场文书
医大实习自我鉴定
2013/12/07 职场文书
食品采购员岗位职责
2014/04/14 职场文书
公司联欢会策划方案
2014/05/19 职场文书
博士生专家推荐信
2014/09/26 职场文书
安全生产奖惩制度
2015/08/06 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
Python使用DFA算法过滤内容敏感词
2022/04/22 Python