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中使用logging模块代替print(logging简明指南)
Jul 09 Python
python插入数据到列表的方法
Apr 30 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
Apr 27 Python
基于Pycharm加载多个项目过程图解
Jan 19 Python
pycharm新建Vue项目的方法步骤(图文)
Mar 04 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
基于opencv实现简单画板功能
Aug 02 Python
python zip()函数的使用示例
Sep 23 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
python装饰器代码深入讲解
Mar 01 Python
Python还能这么玩之用Python修改了班花的开机密码
Jun 04 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
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
JavaScript 创建对象
2009/07/17 Javascript
js 操作符实例代码
2009/10/24 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
JavaScript实现按键精灵的原理分析
2017/02/21 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
Python中的高级数据结构详解
2015/03/27 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
浅谈Python中函数的参数传递
2016/06/21 Python
Scrapy框架使用的基本知识
2018/10/21 Python
python实现合并两个排序的链表
2019/03/03 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
房地产销售员的自我评价分享
2013/12/04 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
有关爱国演讲稿
2014/05/07 职场文书
受资助学生感谢信
2015/01/21 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android
Python中的pprint模块
2021/11/27 Python
Go语言读取txt文档的操作方法
2022/01/22 Golang