Mit Funktion auf eine geöffnete Webseite zugreifen
Verfasst: Samstag 15. April 2023, 15:25
Hallo,
ich will mehrere Webseiten scrapen um diese am Ende in einem Dataframe zusammenzufassen.
Dazu habe ich ein Programm geschrieben, dass auch läuft.
Jetzt möchte ich mir das umbauen und Funktionen aufrufen, die die jeweilige auszulesende Webseite auslesen.
Das Problem bei dem ich einfach nicht weiterkomme ist folgendes:
Ich rufe eine Funktion auf, die mir Selenium und eine Chromebrowserinstanz öffnet.
Das funktioniert.
Jetzt möchte ich in dem geöffneten Browserfenster die erste Webseite aufrufen um sie auszulesen.
Hier bekomme ich immer die Fehlermeldung
Was mache ich hier falsch? Wo ist mein Gedankenfehler?
Hier der Code (Maßgeblich ist der Windowsaufruf. Code ist vereinfacht auf den Aufruf von Google für die Problemlösung hier):
ich will mehrere Webseiten scrapen um diese am Ende in einem Dataframe zusammenzufassen.
Dazu habe ich ein Programm geschrieben, dass auch läuft.
Jetzt möchte ich mir das umbauen und Funktionen aufrufen, die die jeweilige auszulesende Webseite auslesen.
Das Problem bei dem ich einfach nicht weiterkomme ist folgendes:
Ich rufe eine Funktion auf, die mir Selenium und eine Chromebrowserinstanz öffnet.
Das funktioniert.
Jetzt möchte ich in dem geöffneten Browserfenster die erste Webseite aufrufen um sie auszulesen.
Code: Alles auswählen
login_page_start()
Dabei habe ich in der ersten Funktion driver per "return driver" übergeben."NameError: name 'driver' is not defined"
Was mache ich hier falsch? Wo ist mein Gedankenfehler?
Hier der Code (Maßgeblich ist der Windowsaufruf. Code ist vereinfacht auf den Aufruf von Google für die Problemlösung hier):
Code: Alles auswählen
### Webdriver aus Unterprogramm starten
from start_webdriver import webdriver_starten
webdriver_starten()
### Erste Seite aufrufen
### page öffnen
from page_login import login_page_start
login_page_start()
Code: Alles auswählen
def webdriver_starten():
import os_auswahl
osver = os_auswahl.osversion()
print(osver)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
if osver == 'win32':
# Auswahl Windows
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
options.add_argument("--disable-extensions")
options.add_experimental_option('detach', True)
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
return driver
else:
# Auswahl Linux
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
return driver
Code: Alles auswählen
def login_page_start():
# Website aurufen
URL = "https://www.google.de"
driver.get(URL)