分享一个常用的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实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
Python中if elif else及缩进的使用简述
May 31 Python
python中for用来遍历range函数的方法
Jun 08 Python
Selenium元素的常用操作方法分析
Aug 10 Python
python散点图实例之随机漫步
Aug 27 Python
python实现旋转和水平翻转的方法
Oct 25 Python
浅析python的Lambda表达式
Feb 27 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 Python
python re.sub()替换正则的匹配内容方法
Jul 22 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
python中JWT用户认证的实现
May 18 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 13 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使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
PHP 8新特性简介
2020/08/18 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
Swift中的协议(protocol)学习教程
2016/07/08 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
教师个人鉴定材料
2014/02/08 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
写景作文评语集锦
2014/12/25 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫