import requests
from apscheduler.schedulers.blocking import BlockingScheduler
from warnings import filterwarnings
from pytz_deprecation_shim import PytzUsageWarning
filterwarnings('ignore', category=PytzUsageWarning)
from dingtalkchatbot.chatbot import DingtalkChatbot
# 创建session对象,第一次登陆成功后将自动存储cookie
session = requests.Session()
# 这个url是登陆入口
login_url = "https://bi.xtw-tech.com/auth/login?redirect=%2F"
headers = {
'authority': 'bi.xtw-tech.com',
'method': 'GET',
'path': '/auth/login?redirect=%2F',
'scheme': 'https',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'max-age=0',
# 'cookie': '_ga=GA1.2.997697532.1637155627; _gid=GA1.2.1584931448.1637155627; _gat=1',
'sec-ch-ua': '"Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "Windows",
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36',
}
response = session.get(url=login_url, headers=headers)
url = 'https://bi.xtw-tech.com/api/session'
# 请求头文件Request Headers
headers = {
'authority': 'bi.xtw-tech.com',
'method': 'POST',
'path': '/api/session',
'scheme': 'https',
'accept': 'application/json',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'content-length': '75',
'content-type': 'application/json',
# 'cookie': '_ga=GA1.2.997697532.1637155627; _gid=GA1.2.1584931448.1637155627; _gat=1',
'origin': 'https://bi.xtw-tech.com',
'referer': 'https://bi.xtw-tech.com/auth/login?redirect=%2F',
'sec-ch-ua-platform': "macos",
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36',
}
# 登陆信息
data = {
'password': "",
'remember': 'true',
'username': ""
}
response = session.post(url=url, headers=headers, json=data)
ur ='https://bi.xtw-tech.com/question/491'
headers={
'authority': 'bi.xtw-tech.com;',
'method': 'GET',
'path': '/question/491',
'scheme': 'https',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'max-age=0',
'if-modified-since': 'Sat, 7 May 2022 10:44:15 GMT',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "macOS",
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'same-origin',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36',
}
response =session.get(url=ur,headers=headers)
Url_current = 'https://bi.xtw-tech.com/api/user/current'
headers = {
'authority': 'bi.xtw-tech.com',
'method': 'GET',
'path': '/api/user/current',
'scheme': 'https',
'accept': 'application/json',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'content-type': 'application/json',
'referer': 'https://bi.xtw-tech.com/auth/login?redirect=%2F',
'sec-ch-ua': '"Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "Windows",
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36",
}
response = session.get(url=Url_current, headers=headers)
url_data ='https://bi.xtw-tech.com/api/database'
headers={
'authority': 'bi.xtw-tech.com',
'method': 'GET',
'path': '/api/database',
'scheme': 'https',
'accept': 'application/json',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'content-type': 'application/json',
'if-modified-since': 'Sat, 7 May 2022 10:24:23 GMT',
'referer': 'https://bi.xtw-tech.com/question/491',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "macOS",
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36',
}
response=session.get(url=url_data,headers=headers)
first_url = 'https://bi.xtw-tech.com/api/alert/question/491'
headers_first_url = {
'authority': 'bi.xtw-tech.com',
'method': 'GET',
'path': '/api/card/491',
'scheme': 'https',
'accept': 'application/json',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'content-type': 'application/json',
'referer': 'https://bi.xtw-tech.com/question/491',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "macOS",
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36',
}
response = session.get(url=first_url, headers=headers_first_url)
url = 'https://bi.xtw-tech.com/api/card/491/query'
headers={
'authority': 'bi.xtw-tech.com',
'method': 'POST',
'path': '/api/card/491/query',
'scheme': 'https',
'accept': 'application/json',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'content-length': '38',
'content-type': 'application/json',
'origin': 'https://bi.xtw-tech.com',
'referer': 'https://bi.xtw-tech.com/question/491',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "macOS",
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36',
}
data = {
'ignore_cache': False,
'parameters': []
}
response= session.post(url=url,json=data,headers=headers)
item = response.json()['data']['rows']
data = {'北京中心仓':{},'上海中心仓':{},'成都中心仓':{},'深圳中心仓':{}}
for i in item:
from_center = i[6]
to_center = i[8]
url = i[4]
city = i[1]
if from_center=='北京中心仓':
data['北京中心仓'][str(to_center)]=str(url)
elif from_center=='上海中心仓':
data['上海中心仓'][str(to_center)]=str(url)
elif from_center=='成都中心仓':
data['成都中心仓'][str(to_center)]=str(url)
elif from_center=='深圳中心仓':
data['深圳中心仓'][str(to_center)]=str(url)
webhook = 'https://oapi.dingtalk.com/robot/send?access_token=b66aaa7dd354abf4e427af958bb38edc791eed318fd9c3132e3021606e477d55'
bot =DingtalkChatbot(webhook)
tel = {'北京中心仓':['18533783296'],'上海中心仓':['15821745509'],'成都中心仓':['19830476773'],'深圳中心仓':['18107130982']}
if data['北京中心仓']:
bot.send_text(msg='到货异常,请北京中心仓及时核实'+str(data['北京中心仓']),at_mobiles=tel['北京中心仓'])
if data['上海中心仓']:
bot.send_text(msg='到货异常,请上海中心仓及时核实'+str(data['上海中心仓']),at_mobiles=tel['上海中心仓'])
if data['深圳中心仓']:
bot.send_text(msg='到货异常,请深圳中心仓及时核实'+str(data['深圳中心仓']),at_mobiles=tel['深圳中心仓'])
if data['成都中心仓']:
bot.send_text(msg='到货异常,请成都中心仓及时核实'+str(data['成都中心仓']),at_mobiles=tel['成都中心仓'])