考慮到b站移動滑塊登陸比較難而且成功率一般
故而採用了簡單的***登陸
至少常用的pc+手機的**都支援***登入
一、登陸流程
1、判斷使用者是否已經登入了
get
2、獲取***位址
get
pip install qrcode
pip install matplotlib
4、 迴圈判斷是否掃碼
post
data=
4、獲取個人資訊
get
**實現
二、api層 api.py
api應滿足單例模式
ajax 負責管理所有請求
新增login類負責登入
新增統一介面類bilibiliapi
bilibiliapi.login=login()三、服務層 server.py
from api import bilibiliapi as api
class login():
def __init__(self,s):
self.s=s
self.oauthkey=''
self.s._type='json'
def islogin(self):
r=api.login.islogin(self.s)
if r['code']==-101:return false
else:return self.get_info()
def get_info(self):
r=api.user.get_info(s)
self.info=r['data']
return true
def get_vdcode(self):
r=api.login.get_vdcode(self.s)
code_url=r['data']['url']
img=self.make_vdcode(code_url)
self.show_img(img)
self.oauthkey=r['data']['oauthkey']
def show_img(self,img):
import matplotlib.pyplot as plt
plt.imshow(img)
plt.show()
def make_vdcode(self,code_url):
import qrcode
return qrcode.make(code_url)
def loop_vdcode(self):
import time
r=api.login.loop_vdcode(self.s,self.oauthkey)
while not r['status']:
time.sleep(1)
r=api.login.loop_vdcode(self.s,self.oauthkey)
if r['data']==-2:
print('***已過期')
break
if r['status']:self.info=r['data']
return r['status']
四、測試**
掃碼授權登陸
手機授權掃碼登陸 首先輸入賬號密碼,進行驗證,驗證成功後顯示手機授權 這個是掃碼授權的 實現 var numt var token var t1 function getcode numt 0 t1 setinterval surestuts,3000 定時狀態確認 確認手機授權情況 functio...
微信掃碼登陸js
5 self redirect設定成true,意思是在當前 所在的iframe中跳轉,預設掃碼方式就設定成true 如果是內嵌 就必須設定成false,否則就會出現如下圖情況,在 嵌入的地方開啟重定向的網頁。無論什麼框架中使用都是在頁面載入的時候引入然後根據文件寫api即可 單頁面可以通過以下方式在...
私人筆記,微信掃碼登陸
注意 2.redirect uri 掃碼成功後跳轉的頁面 3.scope 有兩個可選值 snsapi base 或者 snsapi userinfo 其中 1 snsapi base 為scope的網頁授權,是靜默授權的,使用者無感知 2 snsapi userinfo snsapi userinf...