Python 如何在一段时间后跳过网页
我正在解析一个有很多大学的文件。Selenium googlesPython 如何在一段时间后跳过网页,python,selenium,web-scraping,automation,Python,Selenium,Web Scraping,Automation,我正在解析一个有很多大学的文件。Selenium googles“招生”+大学名称,然后单击第一个链接并从每个页面获取一些数据。问题是,我从中提取的大学名称列表非常粗糙(从技术上讲是美国所有认证机构的列表),因此一些链接被破坏或陷入加载循环。我如何设置某种计时器,基本上是 if page load time > x seconds: go to next element in list 您可以在页面上调用WebDriverWait,如果页面捕获到TimeoutEx
“招生”+大学名称
,然后单击第一个链接并从每个页面获取一些数据。问题是,我从中提取的大学名称列表非常粗糙(从技术上讲是美国所有认证机构的列表),因此一些链接被破坏或陷入加载循环。我如何设置某种计时器,基本上是
if page load time > x seconds:
go to next element in list
您可以在页面上调用
WebDriverWait
,如果页面捕获到TimeoutException
,则您将知道加载时间过长,因此可以继续下一个页面
由于您不知道每个页面的HTML将是什么样子,这是一个非常具有挑战性的问题
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
# list of college names
names = []
for name in names:
# search for the college here
# get list of search results
WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, "//div[@class='rc']")))
search_results = driver.find_elements_by_xpath("//div[@class='rc']")
# get first result
search_result = search_results[0]
# attempt to load the page
try:
search_result.click()
except TimeoutException:
# click operation should time out if next page does not load
# pass to move on to next URL
pass
这是一个非常粗略的概述。正如我提到的,如果不知道预期的页面标题是什么,或者预期的页面内容是什么样子,那么编写一个能够成功实现这一点的通用方法是非常困难的。这段代码只是您的起点。页面加载的默认超时可能非常大,具体取决于驱动程序。您可以设置它(),和/或使用“PageLoadStrategy”设置。