2017-11-25 9 views
1

セレンの入れ子になったループを処理するのに役立つことを願っています。私はセレンを使用してウェブサイトを掻き回そうとしていますが、私は別のリンクで複数の情報を掻き分けなければならないということが起こります。セレンの入れ子になったループを処理する方法

私はすべてのリンクを取得し、それぞれをループしましたが、その過程で、最初のリンクは必要なアイテムのみを表示し、その後コードが破損しました。

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 

答えて

0

あなた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) 
+0

ありがとう – molecules

関連する問題