python3 实现的人人影视网站自动签到
这是一个自动化程度较高的程序,运行本程序后会从chrome中读取cookies用于登录人人影视签到,
并且会自动添加一个windows任务计划,这个任务计划每天下午两点会执行本程序进行签到。
sys.executable=='C:\\Python34\\pythonw.exe'
使用pythonw执行.py不会弹出命令行窗口。
以system权限执行的程序不能访问网络,/ru参数后的值改为administrators或者users
importos
importsys
importsubprocess
importsqlite3
importtime
importrequests
fromwin32.win32cryptimportCryptUnprotectData
defgetcookiefromchrome(host='.oschina.net'):
cookiepath=os.environ['LOCALAPPDATA']+r"\Google\Chrome\UserData\Default\Cookies"
sql="selecthost_key,name,encrypted_valuefromcookieswherehost_key='%s'"%host
withsqlite3.connect(cookiepath)asconn:
cu=conn.cursor()
cookies={name:CryptUnprotectData(encrypted_value)[1].decode()forhost_key,name,encrypted_valueincu.execute(sql).fetchall()}
print(cookies)
returncookies
#运行环境windows2012serverpython3.4x64pywin32chrome50
"""
#windows版chromeCookies文件为一个sqlite3数据库,
#chrome33以后的版本的cookies的value都加密存在encrypted_value中,
#需要使用win32crypt的CryptUnprotectData对encrypted_value进行解密,
win32crypt是pywin32的一部分,需要安装最新的pywin32模块
"""
#getcookiefromchrome()
#getcookiefromchrome('.baidu.com')
defsign():
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=[rforrinrsif"三次登录时间"inr]
time_=time.strftime("%c")
withopen("zmlog.txt","a+")asf:
f.write(time_+":")
f.writelines(info)
f.write("\n\n")
tn='zmautosign'
defrun(ar=sys.argv):
iflen(ar)==1:
sign()
ifnotintask():
addtask()#添加任务计划
eliflen(ar)>1andar[1].lower()=="-task":
sign()
defintask(tn=tn,ar=sys.argv[0]):
txt=subprocess.getoutput('schtasks/query|find"%s"'%tn)
iftnintxt:
return1
else:
return0
defaddtask(tn=tn,ar=sys.argv[0]):
cmd='schtasks/create/F/ruAdministrators/tn"%s"/scdaily/st14:00:00/tr"%s%s-task"'%(tn,sys.executable,ar)
subprocess.call(cmd,shell=1)
os.chdir(sys.path[0])
run()