浏览器等待的时间超过预期



我有一些代码,我正在尝试刮擦网站。过了一会儿,我认为我被网站放慢了脚步。我不能chekc,但是这是在我的代码中发生的

z=timeit.default_timer()
try:
    WebDriverWait(browser,5).until(
        EC.presence_of_element_located((By.XPATH,'''
        .//div[@collectionitem="title"]/descendant::div[@class="titleWidgetLayout"]/
        descendant::h1[@class="title"]''')))
except:
    print('Web Scraper not loaded')
    return 'Error Load'
n=timeit.default_timer()
print('Time actually waited',n-z)

我发现,在此时间大约是1-2秒时,它最终会变成25秒的等待。这不仅比可接受的速度降低了代码的速度更大,而且等待时间如何比我设置为超时错误触发的5秒钟更长的时间?

我想这可能是页面上的障碍,但是无论如何,我该如何修复?

这很可能发生,因为webdriver设置为等待,直到页面为完全(直到页面的负载符号在寻找任何元素之前,已经完成了加载。

因此,如果您的页面需要23秒才能加载,然后您的元素在页面加载后3秒钟后,您将不会从WebDriverWait条件中丢下超时。

您可以尝试设置页面加载超时

browser.set_page_load_timeout(5)

这样,如果页面花费的时间太长,您可以跳过它?除此之外,您还必须等到页面加载完成。

相关内容

  • 没有找到相关文章

最新更新