我制作了一个硒脚本,可以循环地从页面获取数据。
不幸的是,有时该循环会卡住:也就是说,循环会迭代而没有获取我需要的数据,例如因为网页提供一种新类型的数据,或者因为数据的格式不是我期望的格式。
因此,我需要中断包含循环的单元格,即停止循环,但不关闭 Selenium Web 浏览器,以便我可以修复循环并重新启动它。
但问题是,如果我按“中断内核”,Selenium Web 浏览器会自动关闭。
如何防止 Selenium Web 浏览器在按下“中断内核”时关闭?
相关问题.
当您中断内核时,可能会导致 WebDriver 实例终止,从而关闭浏览器窗口。您可以尝试以下一些保持浏览器打开的策略:
# Start the driver globally
driver = webdriver.Chrome()
def fetch_data():
# Your loop and fetching logic here.
from time import sleep
while True:
try:
# Your fetching logic
except Exception as e:
print(f"Error: {e}")
sleep(60) # Sleep for a minute
detach
选项。这会将浏览器会话与 WebDriver 实例分离。请注意,一旦分离,您可能会失去对此浏览器实例的控制。from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=chrome_options)
import os
from time import sleep
while True:
# Your fetching logic here
if os.path.exists("pause.txt"):
print("Pause file detected. Pausing operation...")
while os.path.exists("pause.txt"):
sleep(10)
当您想暂停循环时,只需创建一个“pause.txt”文件即可。完成修改后,删除“pause.txt”文件,循环将继续。
这些策略应该有助于保持浏览器窗口打开,并让您有机会根据需要干预和修改循环。