This commit is contained in:
2025-09-24 14:55:57 +08:00
parent 0450103c58
commit 5daf290299
3 changed files with 42 additions and 50 deletions
+29 -39
View File
@@ -1,3 +1,4 @@
from tkinter import N
from DrissionPage._base.chromium import Chromium
from DrissionPage._configs.chromium_options import ChromiumOptions
from DrissionPage._pages.mix_tab import MixTab
@@ -12,8 +13,10 @@ class Sinopec_ewcc(object):
self.url_info= 'ewcc.sinopec'
self.browser_path= r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
self.co = ChromiumOptions().set_browser_path(self.browser_path)
self.co.headless(True)
self.co.ignore_certificate_errors(True)
self.browser=Chromium(self.co)
self.tab=self.browser.latest_tab
def quit(self ):
self.browser.quit()
@@ -88,33 +91,41 @@ class Sinopec_ewcc(object):
def find_tab(self,url=None,title=None):
find_tab=None
if url is None:
url=self.url
if title is None:
title=self.url_info
try:
self.tab= self.browser.get_tab(url=url)
find_tab = self.browser.get_tab(url=url)
print("根据 url 找到标签")
except:
print("根据 url 没有找到标签")
self.tab=None
if not self.tab:
if not find_tab:
try:
self.tab=self.browser.get_tab(title=title)
find_tab=self.browser.get_tab(title=title)
print("根据 标题名 找到 标签")
except :
print("根据 标题名 没有找到标签")
self.tab=None
find_tab=None
return self.tab
return find_tab
def is_login(self):
if self.tab is None:
return False
time.sleep(2)
cur_login=False
### 判断是否有仍然发生的界面
try:
ele_process = self.tab.ele('#proceed-button')
ele_process.click()
time.sleep(3)
except Exception as e:
print(e)
try:
e=None
e=self.tab.ele("#userName")
@@ -159,13 +170,23 @@ class Sinopec_ewcc(object):
def Autologin(self,username=None,userpass=None,otp=None,cookies=None):
# 1 查找现有的标签
print('<1> 查找 现有的标签')
self.find_tab() # 新增:查找标签页
if self.find_tab(): # 新增:查找标签页
print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
# 2 如果没有登录 ,则使用cookie登录
if not self.is_login():
print('<2> 找不到对应的网站,使用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 判断是否登录,如果登录不成功,则使用帐号和密码登录
if not self.is_login():
@@ -232,37 +253,6 @@ class Sinopec_ewcc(object):
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()