Screen-Scraping (dynamisch)
Verfasst: Donnerstag 25. Juni 2020, 20:41
Hallo, ich bin dabei einen Screen-Scraper für eine dynamische Website zu programmieren und hänge seit Tagen an folgendem Problem:
Ich möchte von der Preisvergleichsseite (https://www.heizpellets24.de/pelletprei ... 115/6000/1) folgenden Preis auslesen:

Wenn ich den nachfolgenden Code ausführe erhalte ich wie gewünscht den HTML-Code der Website, allerdings ohne diese Preisinformation.
Kann mir hier jemand Hilfestellung geben was ich außer Acht gelassen habe, bzw. wo mein Fehler liegt?
Die Ausgabe ist "None".
Vielen Dank im voraus!
Ich möchte von der Preisvergleichsseite (https://www.heizpellets24.de/pelletprei ... 115/6000/1) folgenden Preis auslesen:

Wenn ich den nachfolgenden Code ausführe erhalte ich wie gewünscht den HTML-Code der Website, allerdings ohne diese Preisinformation.
Kann mir hier jemand Hilfestellung geben was ich außer Acht gelassen habe, bzw. wo mein Fehler liegt?
Code: Alles auswählen
import bs4 as bs
import sys
from PyQt5.QtWebEngineWidgets import QWebEnginePage
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QUrl
class Page(QWebEnginePage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebEnginePage.__init__(self)
self.html = ''
self.loadFinished.connect(self._on_load_finished)
self.load(QUrl(url))
self.app.exec_()
def _on_load_finished(self):
self.html = self.toHtml(self.Callable)
print('Load finished')
def Callable(self, html_str):
self.html = html_str
self.app.quit()
def main():
page = Page('https://www.heizpellets24.de/pelletpreis-direkt/10115/6000/1')
soup = bs.BeautifulSoup(page.html, 'html.parser')
price = soup.find('div', class_='Price-middle total')
print (price)
Vielen Dank im voraus!