0 Pluspunkte 0 Minuspunkte

Wie kann ich einen einfachen Webscraper mit Python und dem Chrome Driver erstellen mit dem ich die Seite nach HTML Elementen durchsuchen kann?

import time
 
from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager

from bs4 import BeautifulSoup
 
options = webdriver.ChromeOptions()
options.headless = True
options.page_load_strategy = 'none'
 
chrome_path = ChromeDriverManager().install()
chrome_service = Service(chrome_path)
 
driver = Chrome(options=options, service=chrome_service)
 
driver.get("https://www.orf.at" )
html = driver.page_source

soup = BeautifulSoup(html, 'html.parser')

elements = soup.find('div', {'class': 'ticker-story-wrapper'})

for result in elements:
    print(result)
    print("-" * 50)
von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Hier ist ein einfaches Beispiel.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')

driver = webdriver.Chrome(options=chrome_options)

driver.get('https://www.orf.at')

elems = driver.find_elements(By.CSS_SELECTOR, 'div[class="ticker-story-wrapper"]')

for el in elems:
    print(el.get_attribute('innerText'))
von  
0 Pluspunkte 0 Minuspunkte

Entferne die Zeile

options.page_load_strategy = 'none'

und ändere die Zeile

elements = soup.find('div', {'class': 'ticker-story-wrapper'})

zu

elements = soup.find_all('div', {'class': 'ticker-story-wrapper'})

von (532 Punkte)