分享一个常用的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 相关文章推荐
Django中实现一个高性能计数器(Counter)实例
Jul 09 Python
整理Python最基本的操作字典的方法
Apr 24 Python
python比较两个列表大小的方法
Jul 11 Python
Python搜索引擎实现原理和方法
Nov 27 Python
Python面向对象class类属性及子类用法分析
Feb 02 Python
Python中实现单例模式的n种方式和原理
Nov 14 Python
从运行效率与开发效率比较Python和C++
Dec 14 Python
python requests指定出口ip的例子
Jul 25 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
Python计算矩阵的和积的实例详解
Sep 10 Python
python利用opencv保存、播放视频
Nov 02 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
PHP的FTP学习(四)
2006/10/09 PHP
PHP+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
详解JS模块导入导出
2017/12/20 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
详解Django中的过滤器
2015/07/16 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
python解析基于xml格式的日志文件
2017/02/25 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
用Python解决x的n次方问题
2019/02/08 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
python 字典套字典或列表的示例
2019/12/16 Python
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
优秀员工表扬信
2014/01/17 职场文书
毕业生应聘求职信
2014/07/10 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
收款委托书范本
2014/09/11 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
横店影视城导游词
2015/02/06 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python