mirror of
https://github.com/NaiboWang/EasySpider.git
synced 2025-04-20 04:39:57 +08:00
Optimize Code
This commit is contained in:
parent
7d247d68ec
commit
838616e131
File diff suppressed because one or more lines are too long
2
ExecuteStage/.vscode/launch.json
vendored
2
ExecuteStage/.vscode/launch.json
vendored
@ -12,7 +12,7 @@
|
|||||||
"justMyCode": false,
|
"justMyCode": false,
|
||||||
// "args": ["--ids", "[7]", "--read_type", "remote", "--headless", "0"]
|
// "args": ["--ids", "[7]", "--read_type", "remote", "--headless", "0"]
|
||||||
// "args": ["--ids", "[9]", "--read_type", "remote", "--headless", "0", "--saved_file_name", "YOUTUBE"]
|
// "args": ["--ids", "[9]", "--read_type", "remote", "--headless", "0", "--saved_file_name", "YOUTUBE"]
|
||||||
"args": ["--ids", "[72]", "--headless", "0", "--user_data", "0", "--keyboard", "0",
|
"args": ["--ids", "[26]", "--headless", "0", "--user_data", "0", "--keyboard", "0",
|
||||||
"--read_type", "remote"]
|
"--read_type", "remote"]
|
||||||
// "args": "--ids '[97]' --user_data 1 --server_address http://localhost:8074 --config_folder '/Users/naibo/Documents/EasySpider/ElectronJS/' --headless 0 --read_type remote --config_file_name config.json --saved_file_name"
|
// "args": "--ids '[97]' --user_data 1 --server_address http://localhost:8074 --config_folder '/Users/naibo/Documents/EasySpider/ElectronJS/' --headless 0 --read_type remote --config_file_name config.json --saved_file_name"
|
||||||
}
|
}
|
||||||
|
@ -1133,7 +1133,25 @@ class BrowserThread(Thread):
|
|||||||
self.recordLog(
|
self.recordLog(
|
||||||
"判断条件内所有条件分支的条件都不满足|None of the conditions in the judgment condition are met")
|
"判断条件内所有条件分支的条件都不满足|None of the conditions in the judgment condition are met")
|
||||||
|
|
||||||
def handleHistory(self, node, xpath, thisHistoryURL, thisHistoryLength, index, element=None, elements=None):
|
def handleHistory(self, node, xpath, thisHandle, thisHistoryURL, thisHistoryLength, index, element=None, elements=None):
|
||||||
|
try:
|
||||||
|
changed_handle = self.browser.current_window_handle != thisHandle
|
||||||
|
except: # 如果网页被意外关闭了的情况下
|
||||||
|
self.browser.switch_to.window(
|
||||||
|
self.browser.window_handles[-1])
|
||||||
|
changed_handle = self.browser.window_handles[-1] != thisHandle
|
||||||
|
if changed_handle: # 如果执行完一次循环之后标签页的位置发生了变化
|
||||||
|
try:
|
||||||
|
while True: # 一直关闭窗口直到当前标签页
|
||||||
|
self.browser.close() # 关闭使用完的标签页
|
||||||
|
self.browser.switch_to.window(
|
||||||
|
self.browser.window_handles[-1])
|
||||||
|
if self.browser.current_window_handle == thisHandle:
|
||||||
|
break
|
||||||
|
except Exception as e:
|
||||||
|
self.print_and_log("关闭标签页发生错误:", e)
|
||||||
|
self.print_and_log(
|
||||||
|
"Error occurred while closing tab: ", e)
|
||||||
if self.history["index"] != thisHistoryLength and self.history["handle"] == self.browser.current_window_handle: # 如果执行完一次循环之后历史记录发生了变化,注意当前页面的判断
|
if self.history["index"] != thisHistoryLength and self.history["handle"] == self.browser.current_window_handle: # 如果执行完一次循环之后历史记录发生了变化,注意当前页面的判断
|
||||||
difference = thisHistoryLength - self.history["index"] # 计算历史记录变化差值
|
difference = thisHistoryLength - self.history["index"] # 计算历史记录变化差值
|
||||||
self.browser.execute_script('history.go(' + str(difference) + ')') # 回退历史记录
|
self.browser.execute_script('history.go(' + str(difference) + ')') # 回退历史记录
|
||||||
@ -1349,25 +1367,7 @@ class BrowserThread(Thread):
|
|||||||
if self.BREAK:
|
if self.BREAK:
|
||||||
self.BREAK = False
|
self.BREAK = False
|
||||||
break
|
break
|
||||||
try:
|
index, elements = self.handleHistory(node, xpath, thisHandle, thisHistoryURL, thisHistoryLength, index, elements=elements)
|
||||||
changed_handle = self.browser.current_window_handle != thisHandle
|
|
||||||
except: # 如果网页被意外关闭了的情况下
|
|
||||||
self.browser.switch_to.window(
|
|
||||||
self.browser.window_handles[-1])
|
|
||||||
changed_handle = self.browser.window_handles[-1] != thisHandle
|
|
||||||
if changed_handle: # 如果执行完一次循环之后标签页的位置发生了变化
|
|
||||||
try:
|
|
||||||
while True: # 一直关闭窗口直到当前标签页
|
|
||||||
self.browser.close() # 关闭使用完的标签页
|
|
||||||
self.browser.switch_to.window(
|
|
||||||
self.browser.window_handles[-1])
|
|
||||||
if self.browser.current_window_handle == thisHandle:
|
|
||||||
break
|
|
||||||
except Exception as e:
|
|
||||||
self.print_and_log("关闭标签页发生错误:", e)
|
|
||||||
self.print_and_log(
|
|
||||||
"Error occurred while closing tab: ", e)
|
|
||||||
index, elements = self.handleHistory(node, xpath, thisHistoryURL, thisHistoryLength, index, elements=elements)
|
|
||||||
if int(node["parameters"]["breakMode"]) > 0: # 如果设置了退出循环的脚本条件
|
if int(node["parameters"]["breakMode"]) > 0: # 如果设置了退出循环的脚本条件
|
||||||
output = self.execute_code(int(
|
output = self.execute_code(int(
|
||||||
node["parameters"]["breakMode"]) - 1, node["parameters"]["breakCode"],
|
node["parameters"]["breakMode"]) - 1, node["parameters"]["breakCode"],
|
||||||
@ -1409,25 +1409,7 @@ class BrowserThread(Thread):
|
|||||||
if self.BREAK:
|
if self.BREAK:
|
||||||
self.BREAK = False
|
self.BREAK = False
|
||||||
break
|
break
|
||||||
try:
|
index, element = self.handleHistory(node, path, thisHandle, thisHistoryURL, thisHistoryLength, index, element=element)
|
||||||
changed_handle = self.browser.current_window_handle != thisHandle
|
|
||||||
except: # 如果网页被意外关闭了的情况下
|
|
||||||
self.browser.switch_to.window(
|
|
||||||
self.browser.window_handles[-1])
|
|
||||||
changed_handle = self.browser.window_handles[-1] != thisHandle
|
|
||||||
if changed_handle: # 如果执行完一次循环之后标签页的位置发生了变化
|
|
||||||
try:
|
|
||||||
while True: # 一直关闭窗口直到当前标签页
|
|
||||||
self.browser.close() # 关闭使用完的标签页
|
|
||||||
self.browser.switch_to.window(
|
|
||||||
self.browser.window_handles[-1])
|
|
||||||
if self.browser.current_window_handle == thisHandle:
|
|
||||||
break
|
|
||||||
except Exception as e:
|
|
||||||
self.print_and_log("关闭标签页发生错误:", e)
|
|
||||||
self.print_and_log(
|
|
||||||
"Error occurred while closing tab: ", e)
|
|
||||||
index, element = self.handleHistory(node, path, thisHistoryURL, thisHistoryLength, index, element=element)
|
|
||||||
except NoSuchElementException:
|
except NoSuchElementException:
|
||||||
self.print_and_log("Loop element not found: ", path)
|
self.print_and_log("Loop element not found: ", path)
|
||||||
self.print_and_log("找不到循环元素:", path)
|
self.print_and_log("找不到循环元素:", path)
|
||||||
@ -1475,25 +1457,7 @@ class BrowserThread(Thread):
|
|||||||
code = get_output_code(output)
|
code = get_output_code(output)
|
||||||
if code <= 0:
|
if code <= 0:
|
||||||
break
|
break
|
||||||
try:
|
index, _ = self.handleHistory(node, "", thisHandle, thisHistoryURL, thisHistoryLength, index)
|
||||||
changed_handle = self.browser.current_window_handle != thisHandle
|
|
||||||
except: # 如果网页被意外关闭了的情况下
|
|
||||||
self.browser.switch_to.window(
|
|
||||||
self.browser.window_handles[-1])
|
|
||||||
changed_handle = self.browser.window_handles[-1] != thisHandle
|
|
||||||
if changed_handle: # 如果执行完一次循环之后标签页的位置发生了变化
|
|
||||||
try:
|
|
||||||
while True: # 一直关闭窗口直到当前标签页
|
|
||||||
self.browser.close() # 关闭使用完的标签页
|
|
||||||
self.browser.switch_to.window(
|
|
||||||
self.browser.window_handles[-1])
|
|
||||||
if self.browser.current_window_handle == thisHandle:
|
|
||||||
break
|
|
||||||
except Exception as e:
|
|
||||||
self.print_and_log("关闭标签页发生错误:", e)
|
|
||||||
self.print_and_log(
|
|
||||||
"Error occurred while closing tab: ", e)
|
|
||||||
index, _ = self.handleHistory(node, "", thisHistoryURL, thisHistoryLength, index)
|
|
||||||
elif int(node["parameters"]["loopType"]) == 4: # 固定网址列表
|
elif int(node["parameters"]["loopType"]) == 4: # 固定网址列表
|
||||||
# tempList = node["parameters"]["textList"].split("\r\n")
|
# tempList = node["parameters"]["textList"].split("\r\n")
|
||||||
urlList = list(
|
urlList = list(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user