1. 程式人生 > 實用技巧 >模擬登陸

模擬登陸

模擬登陸

import requests
import getpass
"""
模擬登陸豆瓣
"""

class DouBanLogin(object):

    ## 模擬登陸,獲取session
    def __init__(self, account, password):
        self.url = "https://accounts.douban.com/j/mobile/login/basic"
        self.headers={
            'Cookie': 'bid=UVp6fA0UmiU',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
        }
        """初始化資料"""
        self.data = {
            'ck':'',
            'name':account,
            'password':password,
            'remember':'false',
            'ticket':''
        }
        self.session = requests.session()  ## 建立會話例項,獲取session,然後就能以登入的方式去做其他事情

    def get_cookie(self):
       """模擬登陸獲取cookie"""
       html = self.session.post(
           url=self.url,
           headers=self.headers,
           data=self.data
       ).json()
       if html["status"] == "success":
           print("恭喜你,登陸成功")
       else:
           print(html["status"])

    def get_user_data(self):
        """獲取使用者資料表明登陸成功"""
        # TODO: 這裡填寫你使用者主頁的url
        url = "https://www.douban.com/people/219115070/"
        # 獲取使用者資訊頁面
        html = self.session.get(url).text
        print(html)
        # with open('douban1.html','w',encoding='utf-8') as fp:
        #     fp.write(html)
        #     fp.close()

    def run(self):
        """執行程式"""
        self.get_cookie()
        self.get_user_data()


import time

'''
時間戳:
    秒級:10位
    毫秒級:13位
    微秒級:16位
'''
def get_time():
    now_time = str(int(time.time()*1000))
    print('當前時間戳為:',now_time)
    return now_time
get_time()

if __name__ == '__main__':
    account = input("請輸入你的賬號:")
    password = getpass.getpass("請輸入你的密碼:")
    login = DouBanLogin(account, password)
    login.run()