我希望有人可以帮助我处理 selenium 中的嵌套循环。我正在尝试使用 selenium 抓取网站,碰巧我必须使用不同的链接抓取多个信息。
所以我得到了所有的链接并遍历每个链接,但在这个过程中,第一个链接只显示我需要的项目,然后代码中断。
def get_financial_info(self):
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=1920x1080")
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='/home/miracle/chromedriver')
driver.get("https://www.financialjuice.com")
try:
WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='trendWrap']")))
except TimeoutException:
driver.quit()
category_url = driver.find_elements_by_xpath("//ul[@class='nav navbar-nav']/li[@class='text-uppercase']/a[@href]")
for record in category_url:
driver.get(record.get_attribute("href"))
news = {}
title_element = driver.find_elements_by_xpath("//p[@class='headline-title']")
for news_record in title_element:
news['title'] = news_record.text
print news
您category_url
将仅在您定义它的页面上有效,并且在第一次重定向到另一个页面后它变得陈旧......
你需要更换
category_url = driver.find_elements_by_xpath("//ul[@class='nav navbar-nav']/li[@class='text-uppercase']/a[@href]")
和
category_url = [a.get_attribute("href") for a in driver.find_elements_by_xpath("//ul[@class='nav navbar-nav']/li[@class='text-uppercase']/a")]
然后遍历链接列表作为
for record in category_url:
driver.get(record)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句