Hallo Mithacker,
heute mal ein kleines Hilfegesuch von mir. es geht um Programmierung und
Webtechnik.
Ich versuche in Python Informationen aus unserem Wiki zu ziehen, z.B. von
der Seite
https://technikkultur-erfurt.de/projekte:bytespeicher_notizen:start?do=re...
Erster Ansatz mit request:
import requests
diffwebsite = requests.get("
https://technikkultur-erfurt.de/projekte:bytespeicher_notizen:start?do=re...
")
diffhtml_source = diffwebsite.text
print(diffhtml_source)
ergib leider nicht dasselbe wie im browser.
Siehe hier:
https://www.diffchecker.com/5g6fzqwa (links: request, rechts:
Chrome)
Speichere ich das erhaltene HTML lokal ab und öffne es mit Chrome, sind
aber wieder alle Infos da. Ich nehme also an es hat nix mit
Accounts/Login/Cookies zu tun, sondern die fehlenden Infos werden
nachträglich mittels Javascript nachgeladen, welches ja bei einem reinen
request nicht ausgeführt wird.
Also mein nächster Versuch: Rendern mit Webkit
import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebKitWidgets import QWebPage
class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()
diffwebsite = Render("
https://technikkultur-erfurt.de/projekte:bytespeicher_notizen:start?do=re...
")
diffhtml_source = diffwebsite.frame.toHtml()
print(diffhtml_source )
Das Ergebnis ist aber nur marginal unterschiedlich zum erste Versuch:
https://www.diffchecker.com/r6ryc4gq
Die benötigten Informationen fehlen immernoch.
Hat jemand eine Idee?
Die Webkit-Lösung stammt (natürlich) aus dem Netz, war dort aber für PyQt4
beschrieben.
Gruss,
Chaos