die Bilder sind in einem Javascript als "placeholder" verpackt.
ich bin immer wie folgt vorgegangen:
Code: Alles auswählen
                    driver = webdriver.Firefox(options=Options,executable_path=pfad+ r'\tools\geckodriver.exe')
                    driver.get(url.format(index))                                   
                    iterations = 0
                    while iterations < 3: 
                        html = driver.execute_script("return document.documentElement.outerHTML")
                        time.sleep(2)                                                                           
                        driver.execute_script("window.scrollTo(0, window.scrollY + 800)")
                        iterations += 1
                        ...
                    sel_soup = BeautifulSoup(html, 'html.parser')
                        jetzt möchte ich das ganze mit QWebEnginePage machen.
Ich hab festgestelt das er schneller ist als webdriver
wie kriege ich das Javascript am laufen ?
da hab ich folgendes gefunden:
Code: Alles auswählen
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()
    page = Page(url).runJavascript("return document.documentElement.outerHTML") 
    soup = BeautifulSoup(page.html,'lxml')page = Page(url).runJavascript("return document.documentElement.outerHTML")
AttributeError: 'Page' object has no attribute 'runJavascript'
wo kommt das runJavascript() rein im script ?
kann ich irgendwie herrausfinden das die Bilder geladen sind ?
ich hab das ja bisher mit 3x jeweils :
Code: Alles auswählen
                        time.sleep(2)                                                                           
                        driver.execute_script("window.scrollTo(0, window.scrollY + 800)")Also der ladet die Side, schläft für 2 sekunden(damit er zeit hat die Bilder zu laden)
scrollt dann 800pixel runter und wartet wieder 2 sekunden usw.
gibt es eine möglichkeit abzufragen ob die Bilder geladen sind oder geht das wieder nur mit sleep(2) usw. ?
