2012-06-27 4 views
1

Est-il leur moyen d'exécuter des événements de chargement de javascript de la page Web après sraping html, sans aucun navigateur. c'est-à-dire que je dois scrapper le contenu Web rendu via javascript par exemple vedio de la page Web des nouvelles bbc sont rendus via javacscript après le chargement de la page, je suis intéressé à jeter la vidéo et la description de tir. http://www.bbc.co.uk/news/video_and_audio/Dans la page Web de la mémoire de navigation

Répondre

0

Pour autant que je sache, pas de. Si le contenu est rendu par Javascript, vous avez besoin d'un navigateur. Il est possible d'automatiser un navigateur: http://seleniumhq.org/

+0

Mais le problème avec seleniummhq est c'est un outil, il doit être utilisé, mais je besoin d'un moyen pour que je pourrait collecter la source html générée après que les événements de chargement aient été exécutés. –

0

je fais souvent cela en utilisant WebKit: http://webscraping.com/blog/Scraping-JavaScript-webpages-with-webkit/

import sys 
from PyQt4.QtGui import * 
from PyQt4.QtCore import * 
from PyQt4.QtWebKit import * 

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() 

url = 'http://sitescraper.net' 
r = Render(url) 
html = r.frame.toHtml() 
Questions connexes