【发布时间】:2017-02-01 02:57:45
【问题描述】:
我为这个页面(http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I)做了一个网络爬虫来收集每个页面的股票列表,并在 CSV 中写入信息(例如照片 url、标题、描述、日期、价格等)。
有时在收集列表时会随机弹出“例外”。当我重新启动整个代码时,有时不会出现异常。我在while循环中使用了“try and except”函数来避免出现下面的异常,但是当出现异常时,运行会在while循环中继续运行并且无法退出。
while True:
try:
self.driver.execute_script(option2[1])
except (StaleElementReferenceException, NoSuchElementException):
sleep(1)
print("Exception Found")
continue
break
我想做的是在异常开始时从最后一个用 CSV 编写的列表重新启动整个代码。我的代码很长,所以很难准确描述要从哪个部分开始。但是,我想知道是否有任何特定的命令或逻辑可以在 CSV 中获取最后一个列表的信息,并在出现异常时从该点重新启动代码。我知道我的描述很差,但你们能给我有什么建议吗?
【问题讨论】:
-
“因此,我想从异常开始的列表中重新启动整个代码”请解释这一行。
-
我改写我的句子,但我知道它仍然不清楚。这是我最好的描述。
-
我理解了这个问题,但在回答之前我想澄清我的最后一个疑问。什么是“选项 2 [1]”? option2 的类型是什么。
-
我从每个下拉菜单中收集商品信息。 option2 是页面中第一行下拉菜单的最后一列。第一个索引(option2[0])是下拉菜单中item的文本信息,第二个索引(option2[1])是我用来选择item的值信息。
-
如果您将代码的较小部分包装在 try/except 中,重新启动一小部分会更容易。我怀疑您必须在
.execute_script中添加异常处理,并在那里重新启动较小的解析操作。
标签: python csv exception web-crawler