Ho avuto l'impressione che l'utilizzo di un'implementazione browser headless del webkit usando PyQT mi procurasse automaticamente il codice html per ogni URL anche con un pesante codice JS. Ma lo vedo solo parzialmente. Mi sto confrontando con la pagina che ottengo quando salvi la pagina dalla finestra di firefox.La pagina HTML è molto diversa quando si utilizza un'implementazione del webkit headless usando PyQT
Sto usando il seguente codice -
class JabbaWebkit(QWebPage):
# 'html' is a class variable
def __init__(self, url, wait, app, parent=None):
super(JabbaWebkit, self).__init__(parent)
JabbaWebkit.html = ''
if wait:
QTimer.singleShot(wait * SEC, app.quit)
else:
self.loadFinished.connect(app.quit)
self.mainFrame().load(QUrl(url))
def save(self):
JabbaWebkit.html = self.mainFrame().toHtml()
def userAgentForUrl(self, url):
return USER_AGENT
def get_page(url, wait=None):
# here is the trick how to call it several times
app = QApplication.instance() # checks if QApplication already exists
if not app: # create QApplication if it doesnt exist
app = QApplication(sys.argv)
#
form = JabbaWebkit(url, wait, app)
app.aboutToQuit.connect(form.save)
app.exec_()
return JabbaWebkit.html
qualcuno può vedere nulla ovviamente sbagliato con il codice?
Dopo aver eseguito il codice attraverso alcuni URL, qui è quella che ho trovato che mostra i problemi che sono in esecuzione in abbastanza chiaramente - http://www.chilis.com/EN/Pages/menu.aspx
Grazie per tutti i puntatori.
uso phantom.js. È meglio per questo tipo di lavoro. – BigSack