Web scraping mit BeautifulSoup
Ich habe das Ganze noch einmal ein wenig umgestellt und angepasst. Insbesondere habe ich mit WebDriverWait versucht einen zeitlichen Stopp einzubauen. Hier der neue Code
Das Problem ist nun, dass ich als Resultat nur eine News erhalte, diese allerdings 6 Mal... (. Ziel wäre natürlich alle Berichte zu erhalten aber halt nur 1 Mal.... Irgendwo ist wohl immer der Wurm drin...
Code: Alles auswählen
from selenium import webdriver
import pandas as pd
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Welche Seite wird aufgerufen
url = 'https://finance.yahoo.com/quote/DAI.DE?p=DAI.DE&.tsrc=fin-srch'
# Url zum lokal installierten Chrome Treiber
driver = webdriver.Chrome('C:/Users/Startklar/Desktop/CFDS/chromedriver.exe')
driver.get(url)
# Zum laden der gesamten Seite, sämtliche Einträge werden angezeigt
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# Code zum Element, welches sämtliche benötigte Informationen beinhaltet
articles = WebDriverWait(driver, 30).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "li.js-stream-content")))
# Schlaufe für benötigte Details innerhalb des obigen Elementes
for article in articles:
try:
source = article.find_element_by_xpath('//div/div/div[2]/div/span[1]').text
title = article.find_element_by_xpath('//div/div/div[2]/h3/a').text
text = article.find_element_by_xpath('//div/div/div[2]/p').text
date = article.find_element_by_xpath('//div/div/div[1]/div/span[2]').text
print(source,title,text,date+'/n')
except:
print("")