-2

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

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

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

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

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

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

4

3 回答 3

2

这意味着[j-1]对于给定的值不存在j,可能如果j-1超过列表中的最大元素数

于 2014-11-19T22:40:10.650 回答
1

您可以尝试您的代码并像这样捕获 IndexError 异常:

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

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

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

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

于 2014-11-20T03:18:57.717 回答
1

使用代码片段时,可以方便地在文本编辑器中打开它们,或者

于 2014-11-20T04:11:41.247 回答