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()
复制代码
|