望指正demo的定位,有时候会抽风无法接受我的定位信息

 #! /usr/bin/python3
# -*- coding:UTF- -*-
# time : // :
# file : chuangyue.py
# By 卤蛋
from urllib.parse import quote
import datetime
import requests
import calendar
import sys
import time
import random
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) request = requests.session() d = datetime.datetime.now() StateId = index_html = __file__.replace("requestforCH.py", "") + "index.html"
index_img = __file__.replace("requestforCH.py", "") + "index.jpg" UserAgent_list = [r"Mozilla/5.0 (Linux; Android 8.1.0; Redmi 6 Build/O11019; wv) " +
r"AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36",
r"Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19",
r"Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
r"Mozilla/5.0 (Linux; U; Android 6.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"] with open(__file__.replace("requestforCH.py", "") + r'cookie.txt', 'r') as file:
cookie = file.read()
cookies = {} # 初始化cookies字典变量
for line in cookie.split(';'): # 按照字符:进行划分读取
# 其设置为1就会把字符串拆分成2份
name, value = line.strip().split('=', )
cookies[name] = value # 为字典cookies添加内容 def UserAgent():
return UserAgent_list[random.randint(, len(UserAgent_list)-)] def locationStateAdd(userid):
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"Host": "sqg.cydgsx.com",
"Connection": "Keep-Alive",
"Accept-Encoding": "gzip",
"User-Agent": "okhttp/3.10.0",
}
data = {"params": str({"state": StateId, "user_id": userid})}
response = request.get(
url="https://sqg.cydgsx.com/locationStateAdd",
headers=headers,
data=data,
timeout=,
verify=False)
return response.json() def studentLocationAdd(userid):
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"Host": "sqg.cydgsx.com",
"Connection": "Keep-Alive",
"Accept-Encoding": "gzip",
"User-Agent": r"okhttp/3.10.0",
}
data = {"params": '{"address":"中国广东省广州市海珠区","latitude":"23.09610289210092","longitude":"113.33666163412784","user_id":%s}' % userid}
response = request.post(
url="https://sqg.cydgsx.com/studentLocationAdd",
data=data,
headers=headers,
timeout=,
verify=False)
print("定位:",response.text)
for key, value in response.json().items():
if value == "成功" and key == "meg":
return True
return False def Index(url="https://sqg.cydgsx.com/m/s/log/Index"):
headers = {
"Host": "sqg.cydgsx.com",
"Connection": "keep-alive",
"Upgrade-Insecure-Requests": "",
"User-Agent": UserAgent(),
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Referer": url,
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,en-US;q=0.9",
"X-Requested-With": "com.gcykj.boss",
}
temp_cookies = {"chref": url}
temp_cookies.update(cookies)
response = request.get(
url=url,
headers=headers,
cookies=temp_cookies,
timeout=,
verify=False)
html = response.text.replace('href="', 'href="https://sqg.cydgsx.com').replace("'get','", "'get','https://sqg.cydgsx.com").replace(r'src="', 'src="https://sqg.cydgsx.com')
with open(index_html, "w", encoding='utf-8') as file:
file.write(html)
print(locationStateAdd(cookies["LoginUser_Id"].split("&")[])) # 等待服务器添加定位
# studentLocationAdd(cookies["LoginUser_Id"].split("&")[]) # 添加定位
return studentLocationAdd(cookies["LoginUser_Id"].split("&")[]) # 添加定位 def day(string=d.strftime('%Y-%m-%d')): if d.day == getMonthFirstDayAndLastDay()[].day:
month(d.strftime('%Y-%m-%d') + "\n无人值守\n" + "每月小结")
elif d.weekday() == :
week(d.strftime('%Y-%m-%d') + "\n无人值守\n" + "每周周报")
headers = {
"Host": "sqg.cydgsx.com",
"User-Agent": UserAgent(),
"Referer": "https://sqg.cydgsx.com/m/s/log/wLog",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,en-US;q=0.9",
"Accept": "application/json",
"Origin": "https://sqg.cydgsx.com",
"X-Requested-With": "XMLHttpRequest",
"Connection": "keep-alive",
"Content-Type": "application/x-www-form-urlencoded"
} data = {"InternStateId": StateId,
"interContent": quote(string, 'utf-8'),
"logImg": "",
"newlogImg": "",
"posAddress": "",
"posLong": "",
"posLati": ""}
response = request.post(
url="https://sqg.cydgsx.com/m/s/Log/SaveWriteLog",
data=data,
headers=headers,
cookies=cookies,
timeout=,
verify=False)
for key, value in response.json().items():
if value == "成功" and key == "meg":
print("每日小结: ",response.json())
return True
return False def week(string=d.strftime('%Y-%m-%d')):
if d.weekday() != :
return False
else:
headers = {
"Host": "sqg.cydgsx.com",
"Connection": "keep-alive",
"Accept": "application/json",
"Origin": "https://sqg.cydgsx.com",
"X-Requested-With": "XMLHttpRequest",
"User-Agent": UserAgent(),
"Content-Type": "application/x-www-form-urlencoded",
"Referer": "https://sqg.cydgsx.com/m/s/log/wWeekSmy?date={}".format(d.strftime('%Y-%m-%d')),
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,en-US;q=0.9",
}
data = {
"summaryInfo": string,
"logImg": "",
"newlogImg": "",
"smyDate": quote(d.strftime('%Y/%m/%d'),
'utf-8').replace("2F05%",
"2F5%") + "+" + quote("0:00:00", 'utf-8'),
"summaryType": "周小结",
}
response = request.post(
url="https://sqg.cydgsx.com/m/s/Log/SaveSmyJson",
data=data,
headers=headers,
cookies=cookies,
timeout=,
verify=False) for key, value in response.json().items():
if value == "成功" and key == "meg":
print("每周小结: ",response.json())
return True
return False def month(string=d.strftime('%Y-%m-%d')):
if d.day != getMonthFirstDayAndLastDay()[].day:
return False
else:
headers = {
"Host": "sqg.cydgsx.com",
"Connection": "keep-alive",
"Accept": "application/json",
"Origin": "https://sqg.cydgsx.com",
"X-Requested-With": "XMLHttpRequest",
"User-Agent": UserAgent(),
"Content-Type": "application/x-www-form-urlencoded",
"Referer": "https://sqg.cydgsx.com/m/s/log/wMonthSmy?date={}".format(d.strftime('%Y-%m-%d')),
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,en-US;q=0.9",
} data = {
"summaryInfo": string,
"logImg": "",
"newlogImg": "",
"smyDate": quote(d.strftime('%Y/%m/%d'),
'utf-8').replace("%2F0", "%2F") + "+" + quote("22:32:00", 'utf-8'),
"summaryType": "月小结",
}
response = request.post(
url="https://sqg.cydgsx.com/m/s/Log/SaveSmyJson",
data=data,
headers=headers,
cookies=cookies,
timeout=,
verify=False) for key, value in response.json().items():
if value == "成功" and key == "meg":
print("每月小结: ",response.json())
return True
return False def getMonthFirstDayAndLastDay(year=None, month=None):
if year:
year = int(year)
else:
year = datetime.date.today().year if month:
month = int(month)
else:
month = datetime.date.today().month firstDayWeekDay, monthRange = calendar.monthrange(year, month) return [
datetime.date(
year=year,
month=month,
day=),
datetime.date(
year=year,
month=month,
day=monthRange)] def main(data=""):
def setLog(data):
if sys.argv[] == "day":
return day(data + "每日日志")
elif sys.argv[] == "week":
return week(data + "每周周报")
elif sys.argv[] == "month":
return month(data + "每月小结")
if len(sys.argv) > :
return setLog("".join(sys.argv[:]))
elif len(sys.argv) > :
return setLog(data)
else:
return day(data + "每日日志") if __name__ == '__main__':
print("##"*)
# Index("https://sqg.cydgsx.com/m/s/Home/Index")
if main(d.strftime('%Y-%m-%d') + "\n无人值守\n"):
print(d.strftime('%Y-%m-%d %H:%M:%S') + "\t成功写入日志")
print(Index("https://sqg.cydgsx.com/m/s/log/Index"))
else:
print(d.strftime('%Y-%m-%d %H:%M:%S') + "\n写入日志失败")
print("==" * + "\n闯越自动写日志系统(更新版)\tBy:卤蛋 \n2019.05.20·05.31\n" + "==" * )
print("##"*)

基于python3.7的一个闯越自动签到脚本--demo版的更多相关文章

  1. 闯越自动签到demo版补充说明

    demo代码:https://www.cnblogs.com/canmeng/p/11000548.html 定位出错是由于cookie 我重新登录账号过,cookies的值就变了 当时没注意cook ...

  2. Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)

    T00ls 每日签到是可以获取 TuBi 的,由于常常忘记签到,导致损失了很多 TuBi .于是在 T00ls 论坛搜索了一下,发现有不少大佬都写了自己的签到脚本,签到功能实现.定时任务执行以及签到提 ...

  3. 对RoboMaster论坛自动签到脚本制作(虽然没什么用)

    RoboMaster论坛自动签到,自动浏览刷分 不务正业系列 上完最后一节课,队长跟我们说,RM有个BBS,可以看看,但是下载要金币,这个金币只能做签到等事情才能得到,所以我用python做了一个小程 ...

  4. python写的自动签到脚本。

    等以后有时间补上. 附上代码: #! /usr/bin/env python # coding:utf-8 #-----------------------------------------学号和密 ...

  5. 从基于idea的第一个javaweb项目到shell脚本项目自动发布(jdk1.8,mysql5.7,maven3.5,tomcat9,subversion,centos7.3)之一

    首先说一下为什么写这篇文章,因为从正式参加工作就做javaweb开发,一路走来,碰到了很多的问题,每次问题都想从度娘那里得到准确的答案,但是,每个人遇到的问题不尽相同,问题的解决方案有时候也只是仅供参 ...

  6. 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

    搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...

  7. python3+任务计划实现的人人影视网站自动签到

    python3+任务计划实现的人人影视网站自动签到 这是一个自动化程度较高的程序,运行本程序后会从chrome中读取cookies用于登录人人影视签到, 并且会自动添加一个windows 任务计划,这 ...

  8. Sublime Text 2 (for OS X )配置成可以运行基于python3解释器的 .py文件

    Mac自带的python 其version是python 2.7 官网下的Sublime Text 2部署好了以后默认也是 为了使ST2 可以在command+B时可以运行基于python3的.py, ...

  9. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

随机推荐

  1. Oracle的表操作,约束

    回顾MySQL创建表语句users(id整型/name字符串/birthday日期型,默认今天)drop table if exists users;create table if not exist ...

  2. PHP中文手册2

    11.异常处理 用户可以用自定义的异常处理类来扩展 PHP 内置的异常处理类.以下的代码说明了在内置的异常处理类中,哪些属性和方法在子类中是可访问和可继承的.译者注:以下这段代码只为说明内置异常处理类 ...

  3. 工作经验(JNI篇)

    我的工作是C++开发,主要是做底层的,由于要做跨平台的原因,常会做成JNI给Java调用,下面是工作时总结的经验希望有用 JNI只能使用C语言的方式编译,所以,要使用C++的话,要用 extern & ...

  4. EL_JSTL

    EL(Expression Language)EL表达式 作用:在JSP中消灭java代码 语法: "${ }" 用法:参考jsp页面 //Servlet中,: User user ...

  5. Spring scope 配置

    Scope 描述的是 Spring 容器如何新建Bean的实例,Spring的Scope有以下几种,通过@Scope来注解实现: 1. Singleton: 一个Spring容器中只有一个Bean的实 ...

  6. 极飞P20农业无人机多机协同作业飞行

                      来自为知笔记(Wiz)

  7. js数字滑动时钟

    js数字滑动时钟: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  8. 【干货】Html与CSS入门学习笔记1-3

    从23号开始用了4天时间看完了<Head First Html与CSS>这本书,本书讲解方式深入浅出,便于理解,结合习题,便于记忆,是一本不错的入门书.下面是本书的学习笔记: 一.认识HT ...

  9. FusionCharts使用JavaScript渲染图表(不用Flash)

    FusionCharts可以让用户只使用JavaScript建立图表(而不是使用Flash),只需要添加另一行代码,如下所示: FusionCharts.setCurrentRenderer('jav ...

  10. [转]linux C 打印当前时间

    #include <stdio.h> #include <time.h> int main(void) { time_t t; time(&t); printf(&qu ...