python3 实现的人人影视网站自动签到


Posted in Python onJune 19, 2016

这是一个自动化程度较高的程序,运行本程序后会从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()
Python 相关文章推荐
python益智游戏计算汉诺塔问题示例
Mar 05 Python
用Python实现通过哈希算法检测图片重复的教程
Apr 02 Python
讲解Python中if语句的嵌套用法
May 14 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
python实现简单加密解密机制
Mar 19 Python
Python字典对象实现原理详解
Jul 01 Python
python plotly画柱状图代码实例
Dec 13 Python
基于Python实现简单学生管理系统
Jul 24 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
详解Scrapy Redis入门实战
Nov 18 Python
Python 全局空间和局部空间
Apr 06 Python
python3实现暴力穷举博客园密码
Jun 19 #Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 #Python
Python中使用装饰器来优化尾递归的示例
Jun 18 #Python
举例讲解Python面向对象编程中类的继承
Jun 17 #Python
浅谈python为什么不需要三目运算符和switch
Jun 17 #Python
python运行时间的几种方法
Jun 17 #Python
从局部变量和全局变量开始全面解析Python中变量的作用域
Jun 16 #Python
You might like
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
javascript对象的property和prototype是这样一种关系
2007/03/24 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
JS动态日期时间的获取方法
2015/09/28 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
jQuery层级选择器实例代码
2017/02/06 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
Python基础知识点 初识Python.md
2019/05/14 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
Python Sphinx使用实例及问题解决
2020/01/17 Python
Django models filter筛选条件详解
2020/03/16 Python
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
公务员转正鉴定材料
2014/02/11 职场文书
怎样写家长意见
2015/06/04 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers