欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]python3+任务计划实现的人人字幕网站自动签到

[原创]python3+任务计划实现的人人字幕网站自动签到

"""

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

2016年6月8日 09:52:28  codegay

这是一个自动化程度较高的程序,运行本程序后会从chrome中读取cookies用于登录人人影视签到,

并且会自动添加一个windows 任务计划,这个任务计划每天下午两点会执行本程序进行签到。

sys.executable == 'C:\\Python34\\pythonw.exe'

使用pythonw 执行.py 不会弹出命令行窗口。

以system权限执行的程序不能访问网络,/ru 参数后的值改为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

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

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功