这个不对,这样写只能跳出for div in divs:这个循环
时间: 2023-11-09 20:33:26 浏览: 162
div嵌套的div溢出时换行
5星 · 资源好评率100%
非常抱歉,我的回答有误。你是正确的,使用 `break` 只会跳出内层的 `for` 循环。为了跳出外层的 `while` 循环,可以在内层的 `if` 语句中设置一个变量标记,然后在外层的 `while` 循环中判断这个标记是否被设置,如果被设置就跳出循环。示例如下:
```
is_found = False # 设置一个变量标记,初始值为 False
while not is_bottom and not is_found:
sleep_time = random.random()
time.sleep(sleep_time)
divs = browser.find_elements(By.XPATH, '//*[@id="scroller"]/div[1]/div')
print(len(divs))
for div in divs:
publish_time = div.find_element(By.CLASS_NAME, 'head-info_time_6sFQg').text
footers = div.find_elements(By.TAG_NAME, 'footer')
for footer in footers:
comment = footer.find_element(By.XPATH, 'div/div[2]/div/span').text
share = footer.find_element(By.XPATH, 'div/div[1]/div/div/span/div/span').text
like = footer.find_element(By.XPATH, 'div/div[3]/div/button/span[2]').text
if "3-30" in publish_time:
is_found = True # 如果发布时间中包含字符串 "3-30",就设置 is_found 为 True
break # 跳出内层的 for 循环
if is_found:
break # 跳出外层的 while 循环
```
这样,如果发布时间中包含字符串 "3-30",程序就会跳出内层的 `for` 循环,并设置变量标记 `is_found` 为 True,然后跳出外层的 `while` 循环。
阅读全文