Skip to content

Instantly share code, notes, and snippets.

@norweeg
Last active October 2, 2018 13:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save norweeg/4f4bb747461906015ac609fa1f5bc55b to your computer and use it in GitHub Desktop.
Save norweeg/4f4bb747461906015ac609fa1f5bc55b to your computer and use it in GitHub Desktop.
A simple HTML renderer module useful for retrieving JS-rendered HTML for scraping written using PyQt5
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets
from queue import Queue
class Renderer(QtWebEngineWidgets.QWebEnginePage):
def __init__(self,profile=None,parent=None):
super().__init__(profile,parent)
self._result_queue=Queue(maxsize=1)
self.loadFinished.connect(lambda: self.toHtml(self._result_queue.put))
def render(self,url):
self._result_queue.join()
self.load(QtCore.QUrl(url))
while self._result_queue.empty():
QtWidgets.QApplication.instance().processEvents()
html=self._result_queue.get()
self._result_queue.task_done()
return html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment