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()
    
    
  • 相关阅读:
    ASP日期格式化函数
    HTML友情链接代码
    JS判断是否为数字或为空
    ASP查询数据RS转换成COMMAND
    PHP文本的读写
    负边距的应用
    EntityFramework数据持久化 Linq介绍
    EntityFramework数据持久化 Linq介绍
    EntityFramework数据持久化 Linq介绍
    EntityFramework数据持久化 Linq语法应用
  • 原文地址:https://www.cnblogs.com/gayhub/p/5569201.html
Copyright © 2011-2022 走看看