亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2038 | 回復: 0
打印 上一主題 下一主題

Python實現(xiàn)360賬號登錄 [復制鏈接]

論壇徽章:
2
操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-06-26 22:20:00每日論壇發(fā)貼之星
日期:2015-06-26 22:20:00
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-07-08 14:14 |只看該作者 |倒序瀏覽
Python實現(xiàn)360云盤登陸(360域下都可以登陸),獲取云盤文件并下載
使用登陸類,可以實現(xiàn)360域名下的賬號登陸,方便抓取登陸后的數(shù)據(jù)。

代碼引用:
https://github.com/logbird/360yunpan

云盤登陸
  1. # -*- coding: utf8 -*-
  2. """
  3. 云盤登陸,該類可以登錄所有使用360賬號登錄的網站
  4. @Example
  5.     login = loginYunPan()
  6.     userinfo = login.run('user', 'pwd')
  7.     print userinfo

  8. @Author logbird@126.com
  9. """
  10. import sys
  11. import urllib
  12. import urllib2
  13. import cookielib
  14. import time
  15. import random
  16. import hashlib
  17. import json
  18. import re
  19. import os

  20. class loginYunPan():

  21.     cookieFile = None
  22.     cookie_jar = None
  23.     serverAddr = None
  24.     userFile = None

  25.     def __init__(self):
  26.         self.envInit()
  27.         self.loginInit()

  28.     def envInit(self):
  29.         base = sys.path[0] + "/tmp"
  30.         self.userFile = base + '/user.dat'
  31.         self.cookieFile = base + '/cookie.dat'
  32.         if not os.path.isdir(base):
  33.             os.mkdir(base)
  34.         if not os.path.exists(self.userFile):
  35.             open(self.userFile, 'w').close()
  36.         if not  os.path.exists(self.cookieFile):
  37.             open(self.cookieFile, 'w').close()

  38.     def loginInit(self):      
  39.         self.cookie_jar  = cookielib.LWPCookieJar(self.cookieFile)
  40.         try:
  41.             self.cookie_jar.load(ignore_discard=True, ignore_expires=True)
  42.         except Exception:
  43.             self.cookie_jar.save(self.cookieFile, ignore_discard=True, ignore_expires=True)
  44.         cookie_support = urllib2.HTTPCookieProcessor(self.cookie_jar)
  45.         opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
  46.         urllib2.install_opener(opener)

  47.     def getToken(self, username):
  48.         '''根據(jù)用戶名等信息獲得登陸的token值
  49.             
  50.             username String 用戶名
  51.             return 返回Token 值
  52.         '''
  53.         login = {
  54.             'callback' : 'QiUserJsonP1377767974691',
  55.             'func' : 'test',
  56.             'm' : 'getToken',
  57.             'o' : 'sso',
  58.             'rand' : str(random.random()),
  59.             'userName' : username
  60.         }

  61.         url = "https://login.#/?"
  62.         queryString = urllib.urlencode(login)
  63.         url += queryString
  64.         result = urllib2.urlopen(url).read()
  65.         result = result.strip(' ')
  66.         result = json.loads(result[5:-1])
  67.         token = ''
  68.         if result['errno'] == 0:
  69.             print 'getToken Success'
  70.             token = result['token']
  71.             self.cookie_jar.save(self.cookieFile, ignore_discard=True, ignore_expires=True)
  72.         else:
  73.             print 'getToken Failed, Errno:' + result['errno']
  74.             sys.exit()
  75.         return token


  76.     def doLogin(self, username, password, token):
  77.         '''開始執(zhí)行登陸操作
  78.             
  79.             username String 用戶名
  80.             password String 密碼
  81.             token String 根據(jù)getToken獲得
  82.         '''
  83.         login = {
  84.             'callback' : 'QiUserJsonP1377767974692',
  85.             'captFlag' : '',
  86.             'from' : 'pcw_cloud',
  87.             'func' : 'test',
  88.             'isKeepAlive' : '0',
  89.             'm' : 'login',
  90.             'o' : 'sso',
  91.             'password' : self.pwdHash(password),
  92.             'pwdmethod' : '1',
  93.             'r' : str((long)(time.time()*100)),
  94.             'rtype' : 'data',
  95.             'token' : token,
  96.             'userName' : username
  97.         }
  98.         url = "https://login.#/?"
  99.         queryString = urllib.urlencode(login)
  100.         url += queryString
  101.         result = urllib2.urlopen(url).read()
  102.         result = result.replace("\n", '').strip(' ')
  103.         result = json.loads(result[5:-1])
  104.         userinfo = {}
  105.         if result['errno'] == 0:
  106.             print 'Login Success'
  107.             userinfo = result['userinfo']
  108.             open(self.userFile, 'w').write(json.dumps(userinfo))
  109.             self.cookie_jar.save(self.cookieFile, ignore_discard=True, ignore_expires=True)
  110.         else:
  111.             print 'Login Failed, Errno:' + result['errno']
  112.             sys.exit()
  113.         return userinfo


  114.     def getServer(self):
  115.         '''獲得分布式服務器的地址
  116.             
  117.             return True 已登錄 False 未登錄
  118.         '''
  119.         url = 'http://yunpan.#/user/login?st=163'
  120.         result = urllib2.urlopen(url).read()
  121.         regx = "web : '([^']*)'"
  122.         server = re.findall(regx, result)
  123.         if len(server) and server[0] != '' > 0:
  124.             print "Get Server Success, Server Address:" + server[0]
  125.             self.serverAddr = server[0]
  126.             return True
  127.         else:
  128.             print "Logining!"
  129.             return False


  130.     def run(self, username, password):
  131.         '''開始執(zhí)行登陸流程
  132.             
  133.             username String 用戶名
  134.             password String 密碼
  135.         '''
  136.         userinfo = None
  137.         if self.getServer():
  138.             print 'Login Success!'
  139.             userinfo = open(self.userFile).read()
  140.             userinfo = json.loads(userinfo)
  141.             return userinfo
  142.         else:
  143.             # 獲取token
  144.             token = self.getToken(username)
  145.             # 登陸
  146.             userinfo = self.doLogin(username, password, token);
  147.             # 獲得分布式服務器
  148.             self.getServer()
  149.         return userinfo


  150.     def pwdHash(self, password):
  151.         '''md5操作函數(shù)用于密碼加密

  152.             password String 需要加密的密碼
  153.             return 加密后的密碼
  154.         '''
  155.         md5 = hashlib.md5()
  156.         md5.update(password)
  157.         return md5.hexdigest()



  158. if __name__ == '__main__':
  159.     login = loginYunPan()
  160.     userinfo = login.run('user', 'pwd')
  161.     print userinfo

  162.      

  163. '''
  164. {"errno":0,
  165. "errmsg":"",
  166. "s":"e4x7a%27FD%7EtNm%3AF%29To.%20ocV%40%3CUC7Z3%2F%7Ce%3C%2Aw%40CsRMK%3FE8FUD5.m%27%3F%5D%2C%25p4tqp7%22%40%3Fs%7ETzr%2C%3D%21CE-%3C%5Be%3E%26j%28s%2C%25U%7DPP%5C%5E_4%28arVSU%28%3ECa%5Cr_o%2CS%28%2BJ%2FA%21.%2CWZRAwptNdB4%7D%3BeY3XP-WR3%24%24%29pt%3Ey%25ia%23D%24%3E%7D8%3A%28nH2G0C%23%2Cg%5D09Y%40jF%5EF4h%23",
  167. "userinfo":
  168.     {"qid":"15747194",
  169.     "userName":"logbird",
  170.     "nickName":"",
  171.     "realName":"",
  172.     "imageId":"1c03c17q97c61",
  173.     "theme":"quc",
  174.     "src":"quanzi",
  175.     "type":"formal",
  176.     "loginEmail":"",
  177.     "loginTime":"1377767983",
  178.     "lm":"",
  179.     "unSafeLogin":"0",
  180.     "isKeepAlive":"0",
  181.     "crumb":"020c3d",
  182.     "imageUrl":"http:\/\/u.qhimg.com\/qhimg\/quc\/48_48\/1c\/03\/c1\/1c03c17q97c61.892c07.jpg"
  183.     }
  184. }
  185. '''
復制代碼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP