corp0924
This commit is contained in:
BIN
Binary file not shown.
@@ -1,3 +1,4 @@
|
|||||||
|
from tkinter import N
|
||||||
from DrissionPage._base.chromium import Chromium
|
from DrissionPage._base.chromium import Chromium
|
||||||
from DrissionPage._configs.chromium_options import ChromiumOptions
|
from DrissionPage._configs.chromium_options import ChromiumOptions
|
||||||
from DrissionPage._pages.mix_tab import MixTab
|
from DrissionPage._pages.mix_tab import MixTab
|
||||||
@@ -12,8 +13,10 @@ class Sinopec_ewcc(object):
|
|||||||
self.url_info= 'ewcc.sinopec'
|
self.url_info= 'ewcc.sinopec'
|
||||||
self.browser_path= r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
|
self.browser_path= r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
|
||||||
self.co = ChromiumOptions().set_browser_path(self.browser_path)
|
self.co = ChromiumOptions().set_browser_path(self.browser_path)
|
||||||
|
self.co.headless(True)
|
||||||
self.co.ignore_certificate_errors(True)
|
self.co.ignore_certificate_errors(True)
|
||||||
self.browser=Chromium(self.co)
|
self.browser=Chromium(self.co)
|
||||||
|
self.tab=self.browser.latest_tab
|
||||||
|
|
||||||
def quit(self ):
|
def quit(self ):
|
||||||
self.browser.quit()
|
self.browser.quit()
|
||||||
@@ -88,33 +91,41 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
|
|
||||||
def find_tab(self,url=None,title=None):
|
def find_tab(self,url=None,title=None):
|
||||||
|
find_tab=None
|
||||||
if url is None:
|
if url is None:
|
||||||
url=self.url
|
url=self.url
|
||||||
if title is None:
|
if title is None:
|
||||||
title=self.url_info
|
title=self.url_info
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.tab= self.browser.get_tab(url=url)
|
find_tab = self.browser.get_tab(url=url)
|
||||||
print("根据 url 找到标签")
|
print("根据 url 找到标签")
|
||||||
except:
|
except:
|
||||||
print("根据 url 没有找到标签")
|
print("根据 url 没有找到标签")
|
||||||
self.tab=None
|
|
||||||
|
|
||||||
if not self.tab:
|
if not find_tab:
|
||||||
try:
|
try:
|
||||||
self.tab=self.browser.get_tab(title=title)
|
find_tab=self.browser.get_tab(title=title)
|
||||||
print("根据 标题名 找到 标签")
|
print("根据 标题名 找到 标签")
|
||||||
except :
|
except :
|
||||||
print("根据 标题名 没有找到标签")
|
print("根据 标题名 没有找到标签")
|
||||||
self.tab=None
|
find_tab=None
|
||||||
|
|
||||||
return self.tab
|
return find_tab
|
||||||
|
|
||||||
def is_login(self):
|
def is_login(self):
|
||||||
if self.tab is None:
|
if self.tab is None:
|
||||||
return False
|
return False
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
cur_login=False
|
cur_login=False
|
||||||
|
### 判断是否有仍然发生的界面
|
||||||
|
try:
|
||||||
|
ele_process = self.tab.ele('#proceed-button')
|
||||||
|
ele_process.click()
|
||||||
|
time.sleep(3)
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
e=None
|
e=None
|
||||||
e=self.tab.ele("#userName")
|
e=self.tab.ele("#userName")
|
||||||
@@ -159,13 +170,23 @@ class Sinopec_ewcc(object):
|
|||||||
def Autologin(self,username=None,userpass=None,otp=None,cookies=None):
|
def Autologin(self,username=None,userpass=None,otp=None,cookies=None):
|
||||||
# 1 查找现有的标签
|
# 1 查找现有的标签
|
||||||
print('<1> 查找 现有的标签')
|
print('<1> 查找 现有的标签')
|
||||||
self.find_tab() # 新增:查找标签页
|
if self.find_tab(): # 新增:查找标签页
|
||||||
|
print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
|
||||||
|
|
||||||
# 2 如果没有登录 ,则使用cookie登录
|
# 2 如果没有登录 ,则使用cookie登录
|
||||||
if not self.is_login():
|
if not self.is_login():
|
||||||
print('<2> 找不到对应的网站,使用cookies尝试登录')
|
print('<2> 找不到对应的网站,使用cookies尝试登录')
|
||||||
self.init_cookies(cookies)
|
self.init_cookies(cookies)
|
||||||
self.new_tab()
|
self.tab.get(self.url)
|
||||||
|
self.tab.refresh()
|
||||||
|
time.sleep(3)
|
||||||
|
### 判断是否有仍然发生的界面
|
||||||
|
try:
|
||||||
|
ele_process = self.tab.ele('#proceed-button')
|
||||||
|
print("**********************************")
|
||||||
|
ele_process.click()
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
|
||||||
# 3 判断是否登录,如果登录不成功,则使用帐号和密码登录
|
# 3 判断是否登录,如果登录不成功,则使用帐号和密码登录
|
||||||
if not self.is_login():
|
if not self.is_login():
|
||||||
@@ -232,37 +253,6 @@ class Sinopec_ewcc(object):
|
|||||||
|
|
||||||
return rtn
|
return rtn
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
ewcc = Sinopec_ewcc()
|
|
||||||
|
|
||||||
# 1 查找现有的标签
|
|
||||||
print('<1> 查找 现有的标签')
|
|
||||||
ewcc.find_tab() # 新增:查找标签页
|
|
||||||
|
|
||||||
# 2 如果没有登录 ,则使用cookie登录
|
|
||||||
if not ewcc.is_login():
|
|
||||||
print('<2> 找不到对应的网站,使用cookies尝试登录')
|
|
||||||
ewcc.load_cookies()
|
|
||||||
ewcc.new_tab()
|
|
||||||
|
|
||||||
# 3 判断是否登录,如果登录不成功,则使用帐号和密码登录
|
|
||||||
if not ewcc.is_login():
|
|
||||||
print('<3> 找不对应的网站,使用帐号密码登录')
|
|
||||||
# 这里要注意12小时才可以登录一次。
|
|
||||||
# 这里显示登录界面,并等待输入一分钟
|
|
||||||
ewcc.show_login()
|
|
||||||
|
|
||||||
# 4 判断是否登录 ,如果失败,则发送信息到微信上
|
|
||||||
if ewcc.is_login():
|
|
||||||
ewcc.tab.refresh()
|
|
||||||
ewcc.save_cookies()
|
|
||||||
print(" 保存cookies")
|
|
||||||
else:
|
|
||||||
ewcc.send_message()
|
|
||||||
|
|
||||||
# ewcc.query_car_info()
|
|
||||||
|
|
||||||
ewcc.quit()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+11
-9
@@ -14,7 +14,7 @@ logging.basicConfig(
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
# API基础URL
|
# API基础URL
|
||||||
BASE_URL = 'http://localhost:99'
|
BASE_URL = 'http://10.190.20.156:99'
|
||||||
|
|
||||||
# 演示数据处理函数
|
# 演示数据处理函数
|
||||||
def process_query_data(query_data, parameters):
|
def process_query_data(query_data, parameters):
|
||||||
@@ -52,7 +52,7 @@ def get_parameters():
|
|||||||
data = response.json()
|
data = response.json()
|
||||||
|
|
||||||
if data['success']:
|
if data['success']:
|
||||||
logger.info(f"成功获取参数配置: {data['data']}")
|
logger.info(f"成功获取参数配置: ")
|
||||||
return data['data']
|
return data['data']
|
||||||
else:
|
else:
|
||||||
logger.error(f"获取参数配置失败: {data['error']}")
|
logger.error(f"获取参数配置失败: {data['error']}")
|
||||||
@@ -166,11 +166,9 @@ def save_param4(param4_value):
|
|||||||
# 主处理函数
|
# 主处理函数
|
||||||
def main():
|
def main():
|
||||||
logger.info("查询处理代码启动")
|
logger.info("查询处理代码启动")
|
||||||
|
ewcc = Sinopec_ewcc()
|
||||||
|
|
||||||
# 主循环
|
# 主循环
|
||||||
while True:
|
while True:
|
||||||
ewcc = Sinopec_ewcc()
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 获取参数配置
|
# 获取参数配置
|
||||||
@@ -180,7 +178,11 @@ def main():
|
|||||||
time.sleep(30)
|
time.sleep(30)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# 登录浏览器
|
# 判断当前连接状态,重新连接
|
||||||
|
if not ewcc.browser.states.is_alive:
|
||||||
|
ewcc.browser.reconnect()
|
||||||
|
|
||||||
|
# 自动登录
|
||||||
if not ewcc.Autologin(parameters['param1'],parameters['param2'],parameters['param3'],parameters['param4']):
|
if not ewcc.Autologin(parameters['param1'],parameters['param2'],parameters['param3'],parameters['param4']):
|
||||||
time.sleep(30)
|
time.sleep(30)
|
||||||
continue
|
continue
|
||||||
@@ -192,12 +194,9 @@ def main():
|
|||||||
pending_queries = get_pending_queries()
|
pending_queries = get_pending_queries()
|
||||||
|
|
||||||
# 处理每条查询
|
# 处理每条查询
|
||||||
ewcc.query_car_info("湘AB5W21")
|
|
||||||
for query in pending_queries:
|
for query in pending_queries:
|
||||||
# 处理查询数据
|
# 处理查询数据
|
||||||
rtn_cars_info=ewcc.query_car_info(query['plate_number'],query['phone'])
|
rtn_cars_info=ewcc.query_car_info(query['plate_number'],query['phone'])
|
||||||
#results_count = process_query_data(query, parameters)
|
|
||||||
|
|
||||||
# 更新查询结果
|
# 更新查询结果
|
||||||
update_query_result(query['id'], len(rtn_cars_info), rtn_cars_info)
|
update_query_result(query['id'], len(rtn_cars_info), rtn_cars_info)
|
||||||
|
|
||||||
@@ -222,6 +221,9 @@ def main():
|
|||||||
time.sleep(30)
|
time.sleep(30)
|
||||||
|
|
||||||
logger.info("查询处理器停止")
|
logger.info("查询处理器停止")
|
||||||
|
if ewcc:
|
||||||
|
ewcc.quit()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
Reference in New Issue
Block a user