【发布时间】:2023-04-01 12:40:01
【问题描述】:
我有 2 个嵌套的“for 循环”,我正在尝试重新启动第一个循环以从头开始迭代,一旦它的嵌套循环完成,它就会按照 if 语句成功迭代。 但是,如果嵌套循环满足“else”条件,则外部循环应该定期继续它的迭代。 我试图告诉代码,如果找到的keywords_on_screen 以创建的关键字开始直到该点继续运行,否则在他们停止匹配的最后一个索引处更改后者。
这是我已经尝试过的,但是第一个(外)循环继续遍历字母,而不是从头开始。
import time
from bs4 import BeautifulSoup
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
keyList = ['a','b','c','d']
mainUrl = "https://www.amazon.com/"
browser.get(mainUrl)
searchInput = browser.find_element_by_xpath('//input[@id="twotabsearchtextbox"]')
searchInput.clear()
keyword = str()
# I WANT THE LOOP TO RESTART FROM HERE ONCE THE NESTED LOOP IS FINISHED
for keyChar in keyList:
searchInput.send_keys(keyChar)
time.sleep(2)
searchSoup = BeautifulSoup(browser.page_source, "html.parser")
searchResult = searchSoup.find_all('div', attrs={'id':'suggestions-template'})
results = searchResult[0].find_all('div', attrs={'class':'s-suggestion'})
keyword = keyword + keyChar
print("This is the keyword so far:>>>> ",keyword)
time.sleep(2)
for data_result in results:
data_keywords = BeautifulSoup(str(data_result),"html.parser")
keywords_on_screen = data_keywords.find("div", class_="s-suggestion")["data-keyword"]
print(keywords_on_screen)
if keywords_on_screen.startswith(keyword):
print('ALL GOOD')
else:
print('Condition not met, moving on next letter')
continue
【问题讨论】:
标签: python-3.x loops for-loop