Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit Selenium und Python effizient Webelemente mit mehreren Klassennamen finden?
In Web-Scraping-Szenarien ist es oft notwendig, Elemente auf einer Webseite zu finden dynamisch. Um die Einschränkungen von BeautifulSoup bei der Verarbeitung dynamischer Inhalte zu überwinden, kann Selenium integriert werden, um das Warten auf das Laden von Elementen über JavaScript vor dem Scraping zu ermöglichen.
Bedenken Sie den folgenden Python-Code:
element = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.class, "ng-binding ng-scope")))
In diesem Ziel dieser Codezeile ist es, einen Klassennamen zur Elementidentifizierung anzugeben. Es kann jedoch ein Fehler auftreten, wenn im Argument „By.class“ mehrere Klassennamen vorhanden sind. Selenium unterstützt nicht die Übergabe mehrerer Klassennamen über By.class.
Um dieses Problem zu beheben, ziehen Sie die folgenden Vorschläge in Betracht:
CSS_SELECTOR:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".ng-binding.ng-scope#tabla_evolucion")))
XPATH:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//*[@class='ng-binding ng-scope' and @id='tabla_evolucion']")))
Von Durch die Einbeziehung dieser Änderungen können Sie Elemente auf Webseiten, die dynamisch über JavaScript geladen werden, effektiv lokalisieren und so ein erfolgreiches Web-Scraping ermöglichen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Selenium und Python effizient Webelemente mit mehreren Klassennamen finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!