分享一个常用的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 中__name__ = '__main__' 的作用
Jul 05 Python
Python中用max()方法求最大值的介绍
May 15 Python
在Python中操作字符串之rstrip()方法的使用
May 19 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
Python使用pyshp库读取shapefile信息的方法
Dec 29 Python
python selenium 弹出框处理的实现
Feb 26 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
python实现QQ空间自动点赞功能
Apr 09 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
超简单的Python HTTP服务
Jul 22 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
Python range、enumerate和zip函数用法详解
Sep 11 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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
PHP ajax 分页类代码
2008/11/13 PHP
基于php缓存的详解
2013/05/15 PHP
基于empty函数的判断详解
2013/06/17 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
python使用RNN实现文本分类
2018/05/24 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
python实现字符串加密成纯数字
2019/03/19 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
python实现磁盘日志清理的示例
2020/11/05 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
公司营业员的工作总结自我评价
2013/10/05 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
生物制药专业求职信
2014/03/11 职场文书
2014和解协议书范文
2014/09/15 职场文书
教师工作失职检讨书
2014/09/18 职场文书
房屋买卖协议样本
2014/11/16 职场文书
毕业实习感受与体会
2015/05/26 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
Oracle 触发器trigger使用案例
2022/02/24 Oracle