打开Fiddler程序,正常使用浏览器或企业微信,访问对应网址。找到对应请求URL,参照URL及请求参数,后使用程序组装请求头、请求数据。
# -*- coding: utf-8 -*-
"""
调取配置文件和屏幕分辨率的代码
"""
import json
import datetime
from common import urlRequest
from common import log_tools
from common import unixTimeConvert
from datetime import datetime
from timeDict import timeDict
VERSION = "1.1.1"
def main():
"""
主函数
"""
log_tools.log('info', '程序版本号:{}'.format(VERSION))
sessionid = "o5ma7yxvl2zym0n87u0syflalw3wlgis"
headers = {
'Accept': "application/json, text/plain, */*",
'Accept-Language': "zh-CN",
'Connection': "keep-alive",
'Host': "xxxx.com.cn:18080",
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36 wxwork/2.7.0 (MicroMessenger/6.2) WindowsWechat QBCore/3.53.987.400 QQBrowser/9.0.2524.400",
'Referer': "http://xxxxx.com.cn:18080/pro/m/",
'Accept-Encoding': "gzip, deflate",
'Cookie': "sid={}".format(sessionid)
}
#print(headers)
#获取当前时间
date = datetime.now()
#根据当前时间构建开始时间字符
start_time_datestr = date.strftime('%Y-%m') + "-01 00:00:01"
#根据当前时间构建结束时间key去查询结束时间字典
timeDictKey = date.strftime('%m') + "_end"
#根据结束时间key得到结束时间字符
end_time_datestr = timeDict.get(timeDictKey)
#print(start_time_datestr)
#print(end_time_datestr)
#print(datetime.now())
#将时间字符转换成datetime类型
start_time_date = datetime.strptime(start_time_datestr, '%Y-%m-%d %H:%M:%S')
end_time_date = datetime.strptime(end_time_datestr, '%Y-%m-%d %H:%M:%S')
#将float时间戳去掉小数后转换成字符串参数
start_time_date_parameter = str(int(unixTimeConvert.get_convertToUnixtime(start_time_date)))
end_time_date_parameter = str(int(unixTimeConvert.get_convertToUnixtime(end_time_date)))
#将时间参数添加到url中
url = 'http://xxxxx.com.cn:18080/api/pro/checkin/detail/findByUserId?endtime={}059&starttime={}000&userid='.format(end_time_date_parameter, start_time_date_parameter)
#print(url)
#返回是bytes
query_data = urlRequest.get_json(url, headers)
#print(type(query_data))
#将bytes转换成str
data_list_str = str(query_data, 'utf-8')
#print(data_list_str)
#获取str中的list
date_list_json = json.loads(data_list_str)['data']['data']
#print((date_list_json))
overtime = False;
for j in range(len(date_list_json)):
#list中
if int(date_list_json[j]['day_status']['day_type']) == 1 or int(date_list_json[j]['day_status']['day_type']) == 2:
if date_list_json[j]['down_time'] != "":
if int(date_list_json[j]['down_time'].split(":")[0]) - int(date_list_json[j]['up_time'].split(":")[0]) >= 11:
overtime = True
print("当月加班换休 " + date_list_json[j]['date'] + " " + date_list_json[j]['up_time'] + "至" + date_list_json[j]['down_time'])
if int(date_list_json[j]['down_time'].split(":")[0]) >= 21:
overtime = True
print("当月加班费 " + date_list_json[j]['date'] + " " + date_list_json[j]['up_time'] + "至" + date_list_json[j]['down_time'])
if overtime == False:
print("当月没有加班费")
#添加上\n是为自动换行
if __name__ == '__main__':
main()