用python實現的NYOJ自動簽到程式

2021-08-23 12:29:18 字數 3095 閱讀 6973

程式簡介

使用說明

import requests

from bs4 import beautifulsoup

deflogin_check

(response):

'''抓取獲得登入結果'''

soup = beautifulsoup(response.text, 'html.parser')

lists = soup.find_all('a')

if lists[3].string == '登入':

return

false

else:

return

true

defgetpostdata

():'''獲得登入資訊字典'''

userid = input("請輸入使用者名稱:")

password = input("請輸入密碼:")

post_data =

return post_data

defgetmessage

(response):

'''獲得簽到資訊'''

soup = beautifulsoup(response.text, 'html.parser')

lists = soup.find_all('a')

massage = str(lists[3]['href'])

msp = massage.find("'") + 1

mep = massage.find("'",msp + 1)

return massage[msp:mep]

defgetnyojcoin

(response):

'''獲得nyoj幣的資訊'''

soup = beautifulsoup(response.text, 'html.parser')

lists = soup.find_all('a')

return lists[4].string

defgetcoinsoup

():'''獲得簽到和登入的response物件,以列表形式返回兩個物件

登入失敗時返回的是包含提示資訊的字串'''

try:

headers =

url_qd = ''

url = ''

post_data = getpostdata()

post_url = '/dologin.php'

r = requests.session()

psoup = r.post(post_url, headers=headers, data=post_data)

ifnot login_check(psoup):

return

'login failure'

r.get(url_qd, headers=headers)

soup = r.get(url, headers=headers)

return [psoup, soup]

except:

return

'404'

defgetcoinsoup_step

(userid, password):

'''獲得簽到和登入的response物件,以列表形式返回兩個物件

登入失敗時返回的是包含提示資訊的字串'''

try:

headers =

url_qd = ''

url = ''

post_data =

post_url = '/dologin.php'

r = requests.session()

psoup = r.post(post_url, headers=headers, data=post_data)

ifnot login_check(psoup):

return

'login failure'

r.get(url_qd, headers=headers)

soup = r.get(url, headers=headers)

return [psoup, soup]

except:

return

'404'

defget_nyoj_coin

():'''簽到功能實現的主程式'''

test =

lists = getcoinsoup()

if type(lists) == type(test):

psoup,soup = lists[0],lists[1]

print(getmessage(psoup))

print("目前" + getnyojcoin(soup))

elif lists == '404':

print('簽到失敗!請檢查網路後重試\n(如果您手動訪問acm.nyoj.edu.cn失敗,那麼該程式也無法完成簽到)')

elif lists == 'login failure':

print('簽到失敗!使用者名稱或密碼錯誤')

defget_nyoj_coin_step

(userid, password):

'''簽到功能實現的主程式(方便個人使用,不用重複輸入)'''

test =

lists = getcoinsoup_step(userid, password)

if type(lists) == type(test):

psoup,soup = lists[0],lists[1]

print(getmessage(psoup))

print("目前" + getnyojcoin(soup))

elif lists == '404':

print('簽到失敗!請檢查網路後重試\n(如果您手動訪問acm.nyoj.edu.cn失敗,那麼該程式也無法完成簽到)')

elif lists == 'login failure':

print('簽到失敗!使用者名稱或密碼錯誤')

if __name__ == '__main__':

get_nyoj_coin()

宣告

的python實現 python實現檔案自動歸類

這幾天和幾個小夥伴,在一起做乙個ppt。那我想,可不可以做乙個指令碼實現檔案按照副檔名自動分類呢?這樣,就可以相對輕鬆的找到檔案了。效果展示 使用方法很簡單,只要把python指令碼檔案,放到待處理的資料夾目錄下,執行python檔案即可。這個指令碼實現比較簡單,我把涉及的知識點列了出來。1 相對路...

用遠執行緒實現檔案自刪除

實現檔案自刪除不是乙個特別新的話題了,不過貌似一直沒有特別完美的解決方式。從早先gary nebbett的堆疊溢位版本到後來的批處理 臨時檔案等方式,無不存在著各樣瑕疵 如堆疊溢位不支援xp,臨時檔案 批處理 不夠優雅等等。當然,還有用驅動發irp的方式,不過這只是乙個自刪除,殺雞焉用牛刀?於是這個...

pypy 用python實現的python

pypy 分為兩部分 乙個 python 的實現 和 乙個編譯器 pypy provides infrastructure for building interpreters in r python.this infrastructure makes it much easier than star...