python3+任务计划实现的人人影视网站自动签到

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

sys.executable == 'C:\Python34\pythonw.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"\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

#运行环境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('\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()

转载于:https://www.cnblogs.com/gayhub/p/5569201.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值