分享一个常用的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 相关文章推荐
web.py获取上传文件名的正确方法
Aug 26 Python
通过Python来使用七牛云存储的方法详解
Aug 07 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
Apr 08 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
对Python发送带header的http请求方法详解
Jan 02 Python
Python OrderedDict的使用案例解析
Oct 25 Python
python将字符串转变成dict格式的实现
Nov 18 Python
python 非线性规划方式(scipy.optimize.minimize)
Feb 11 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
python Tkinter的简单入门教程
Apr 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
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
php计算一个文件大小的方法
2015/03/30 PHP
jquery的map与get方法详解
2013/11/04 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
nodejs教程之入门
2014/11/21 NodeJs
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
python框架中flask知识点总结
2018/08/17 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
python爬取网易云音乐评论
2018/11/16 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
PHP面试题集
2016/12/18 面试题
生产现场工艺工程师岗位职责
2013/11/28 职场文书
单位未婚证明范本
2014/01/18 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
欢迎标语大全
2014/06/21 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
政府四风问题整改措施
2014/10/04 职场文书
担保书范本
2015/01/20 职场文书
千与千寻观后感
2015/06/04 职场文书
货款欠条范本
2015/07/03 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python