【发布时间】:2014-11-19 22:31:24
【问题描述】:
我在 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()
在这种情况下,如何处理这个错误?有哪些带有显式等待或异常处理的示例代码可以解决该问题?
【问题讨论】:
-
通常,除了非常小的 sn-ps 之外,您会将 Python 脚本保存到文件中,然后通过
python命令行命令运行它。这将比粘贴到 Python REPL 中更具可持续性。在您当前的情况下,好处是 Python 报告的行号将引用您文件中的实际行号。 -
在 Python REPL 中使用
python方法与execfile(filename)相比有什么优势吗? -
我想你可以使用
execfile(),这同样可以。 -
这是粘贴的第 35 行。如果一个定义的函数稍后在发布的文件中调用另一个,则粘贴脚本可能会失败。但是您会收到有关未定义名称的错误。为什么不直接将脚本写入文件并对其进行测试?
标签: python exception python-interactive