加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

常用的Python模拟登陆类,支持cookie保存

发布时间:2020-12-17 17:26:40 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 # -*- coding:utf8 -*-'''# =============================================================================# FileName: tools.py# Desc: 模拟浏览

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

# -*- coding:utf8 -*-
'''
# =============================================================================
#      FileName: tools.py
#          Desc: 模拟浏览器
#        Author: cosven
#         Email: [email?protected]
#      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,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()

    # 完了可以试着查看自己网易云音乐相应列表歌曲

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读