python3+任務計劃實現(xiàn)的人人影視網(wǎng)站自動簽到

python3+任務計劃實現(xiàn)的人人影視網(wǎng)站自動簽到

"""
python3+任務計劃實現(xiàn)的人人影視網(wǎng)站自動簽到
2016年6月8日 09:52:28  codegay

這是一個自動化程度較高的程序,運行本程序后會從chrome中讀取cookies用于登錄人人影視簽到,
并且會自動添加一個windows 任務計劃,這個任務計劃每天下午兩點會執(zhí)行本程序進行簽到。

sys.executable == 'C:\\Python34\\pythonw.exe'
使用pythonw 執(zhí)行.py 不會彈出命令行窗口。

以system權(quán)限執(zhí)行的程序不能訪問網(wǎng)絡,/ru 參數(shù)后的值改為administrators或者users

"""

import os
import sys
import subprocess
import sqlite3
import time
import requests
from win32.win32crypt import CryptUnprotectData

def getcookiefromchrome(host='.oschina.net'):
    cookiepath=os.environ['LOCALAPPDATA']+r"\Google\Chrome\User Data\Default\Cookies"
    sql = "select host_key,name,encrypted_value from cookies where host_key='%s'" % host
    with sqlite3.connect(cookiepath) as conn:
        cu = conn.cursor()        
        cookies = {name:CryptUnprotectData(encrypted_value)[1].decode() for host_key,name,encrypted_value in cu.execute(sql).fetchall()}
        print(cookies)
        return cookies

#運行環(huán)境windows 2012 server python3.4 x64 pywin32 chrome 50
    """
    #windows 版chrome Cookies文件為一個sqlite3數(shù)據(jù)庫,
    #chrome 33以后的版本的cookies的value都加密存在encrypted_value中,
    #需要使用win32crypt的CryptUnprotectData 對encrypted_value進行解密,
    win32crypt是pywin32的一部分,需要安裝最新的pywin32模塊
    """
#getcookiefromchrome()
#getcookiefromchrome('.baidu.com')

def sign():
    zmcookie = getcookiefromchrome('.zimuzu.tv')
    url = 'http://www.zimuzu.tv/user/login/getCurUserTopInfo'
    requests.get(url,cookies=zmcookie).text
    rs = requests.get('http://www.zimuzu.tv/user/sign',cookies=zmcookie).text.split('\n')
    info = [r for r in rs if "三次登錄時間" in r]
    time_=time.strftime("%c")
    with open("zmlog.txt","a+") as f:
        f.write(time_ + "     :" )
        f.writelines(info)
        f.write("\n\n")

tn='zmautosign'
    
def run(ar=sys.argv):
    if len(ar)==1:
        sign()
        if not intask():
            addtask() #添加任務計劃
            
    elif len(ar)>1 and ar[1].lower()=="-task":
        sign()
    
def intask(tn=tn,ar=sys.argv[0]):
    txt=subprocess.getoutput('schtasks /query |find "%s"' % tn)
    if tn in txt:
        return 1
    else:
        return 0

def addtask(tn=tn,ar=sys.argv[0]):
    cmd='schtasks /create /F /ru Administrators /tn "%s" /sc daily /st 14:00:00 /tr "%s %s -task"' % (tn,sys.executable,ar)
    subprocess.call(cmd,shell=1)
    
os.chdir(sys.path[0])
run()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,045評論 25 709
  • 人最重要的是兩項能力:選擇能力和解決問題的能力. 選擇是方向,有人說選擇比努力更重要,的確如此,但是選擇不是簡單的...
    長弓一箭閱讀 447評論 0 0
  • 放生興盛于隋唐,歷今二千余年而不衰。放生與護生活動被廣泛接納,得益于佛經(jīng)的大力提倡和歷代高僧大德的推動。但是,還是...
    祥和之光閱讀 353評論 0 0

友情鏈接更多精彩內(nèi)容