for Type in Numbers:
for Name in Numbers[Type]:
Url = f"https://hkjunkcall.com/?ft={Numbers[Type][Name]}"
Page.get(Url)
Page.wait.url_change(Url, timeout=300)
Msg = Page.ele(
"xpath=//html/body/div/div[3]/div[2]/div[4]/div[2]/table[3]/tbody/tr[2]/td/font/b"
)
App = Page.ele(
"xpath=//html/body/div/div[3]/div[2]/div[4]/div[2]/table[3]/tbody/tr[1]/td[2]/font/b"
)
if Msg:
print(
f"类型: {Type}, 名称: {Name}, 外显:{Numbers[Type][Name]},! {App.text} ! 标记 ! {Msg.text} !"
)
else:
Msg = Page.ele(
"xpath=//html/body/div/div[3]/div[2]/div[4]/div[2]/table[4]/tbody/tr[2]/td/font/b"
)
App = Page.ele(
"xpath=//html/body/div/div[3]/div[2]/div[4]/div[2]/table[4]/tbody/tr[1]/td[2]/font/b"
)
if Msg:
print(
f"类型: {Type}, 名称: {Name}, 外显:{Numbers[Type][Name]},! {App.text} ! 标记 ! {Msg.text} !"
)
else:
Msg = Page.ele(
"xpath=//html/body/div/div[3]/div[2]/div[4]/div[2]/table[5]/tbody/tr[2]/td/font/b"
)
App = Page.ele(
"xpath=//html/body/div/div[3]/div[2]/div[4]/div[2]/table[5]/tbody/tr[1]/td[2]/font/b"
)
if Msg:
print(
f"类型: {Type}, 名称: {Name}, 外显:{Numbers[Type][Name]},! {App.text} ! 标记 ! {Msg.text} !"
)
else:
print(
f"类型: {Type}, 名称: {Name}, 外显:{Numbers[Type][Name]},< 无标记 >"
)
Page.wait(1)
要简化这段代码,可以通过消除重复代码、使用函数来处理重复逻辑,以及将相似的功能整合到一个循环中。以下是简化后的代码示例:
def fetch_data_and_print(Type, Name, number):
# 封装获取数据和打印的逻辑
for table_index in range(3, 6): # 表格索引从3到5
Url = f"https://hkjunkcall.com/?ft={number}"
Page.get(Url)
Page.wait.url_change(Url, timeout=300)
# 根据表格索引构建XPath
msg_xpath = f"//html/body/div/div[3]/div[2]/div[4]/div[2]/table[{table_index}]/tbody/tr[2]/td/font/b"
app_xpath = f"//html/body/div/div[3]/div[2]/div[4]/div[2]/table[{table_index}]/tbody/tr[1]/td[2]/font/b"
Msg = Page.ele(msg_xpath)
App = Page.ele(app_xpath)
if Msg:
print(f"类型: {Type}, 名称: {Name}, 外显:{number},! {App.text} ! 标记 ! {Msg.text} !")
return # 找到标记后返回
# 如果没有任何标记
print(f"类型: {Type}, 名称: {Name}, 外显:{number},< 无标记 >")
Page.wait(1)
# 主循环
for Type in Numbers:
for Name in Numbers[Type]:
fetch_data_and_print(Type, Name, Numbers[Type][Name])
fetch_data_and_print
函数来封装获取数据和打印的逻辑,避免重复代码。Msg
,找到标记后立即返回,避免了多次重复的条件检查。这样的改动不仅使代码更简洁,还提高了可读性和可维护性。如果你有其他特定需求或想要进一步的调整,请告诉我!
建议改进一下排版,博问支持 markdown 语法
– dudu 1天前