zoukankan      html  css  js  c++  java
  • python3+任务计划实现的人人影视网站自动签到

    python3+任务计划实现的人人影视网站自动签到
    这是一个自动化程度较高的程序,运行本程序后会从chrome中读取cookies用于登录人人影视签到,
    并且会自动添加一个windows 任务计划,这个任务计划每天下午两点会执行本程序进行签到。

    sys.executable == 'C:Python34pythonw.exe'
    使用pythonw 执行.py 不会弹出命令行窗口。

    以system权限执行的程序不能访问网络,/ru 参数后的值改为administrators或者users

    """
    python3+任务计划实现的人人影视网站自动签到
    2016年6月8日 09:52:28  codegay
    
    
    
    """
    
    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"GoogleChromeUser DataDefaultCookies"
        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
    
    #运行环境windows 2012 server python3.4 x64 pywin32 chrome 50
        """
        #windows 版chrome Cookies文件为一个sqlite3数据库,
        #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('
    ')
    	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("
    
    ")
    
    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()
    
    
  • 相关阅读:
    P1121 环状最大两段子段和
    无题
    cdoj 1485 柱爷搞子串 sam treap
    自然数幂和
    Gym 100341C AVL Trees NTT
    线性筛分解质因子
    codeforces 366 Ant Man dp
    UVALive 6914 Maze Mayhem 轮廓线dp
    hdu 5790 Prefix 字典树 主席树
    莫比乌斯反演个人小结
  • 原文地址:https://www.cnblogs.com/gayhub/p/5569201.html
Copyright © 2011-2022 走看看