处理代码段时的错误



我通过从编辑器复制代码并将其粘贴到python中,在python中一次运行了一堆代码。 此代码包括嵌套的 for 循环。 我正在做一些网络抓取,程序在不同的时间退出。 我怀疑这是因为它没有时间加载。 我收到以下错误(再次 - 程序每次抓取不同数量的文本):

Traceback (most recent call last):
  File "<stdin>", line 35, in <module>
IndexError: list index out of range

首先,line 35指的是什么? 这是相关内部 for 循环中的位置吗?

其次,我认为错误可能是由一行使用硒的代码引起的,如下所示:

driver.find_elements_by_class_name("button")[j-1].click()

在这种情况下,如何处理此错误? 哪些具有显式等待或异常处理的示例代码可以解决此问题?

这意味着对于

给定的值 j [j-1]不存在,可能是如果j-1超过列表中的最大元素数

您可以尝试使用代码并捕获如下所示的 IndexError 异常:

try:
    # your code here
except IndexError:
    # handle the error here

当您尝试访问不存在的列表的索引时,会发生索引错误。例如:

>>> a = [1, 2, 3]
>>> print(a[10])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

如果没有更多细节,很难说您应该如何处理错误。

使用代码片段时,在文本编辑器中打开它们很方便

,并且
  • 仅将当前正在处理的部分复制粘贴到控制台中,以便所有相关变量都位于可以从控制台浏览的局部命名空间中,或者
  • 中等到大的块复制粘贴为一个整体,同时启用自动事后调试器调用,例如,使用异常时自动启动调试器 活动状态配方或 IPython 的 %pdb 魔法,或
  • 在调试器下运行整个脚本,例如使用 -m pdb 、IPython 的 %run 或使用 IDE。

最新更新