1

ブラウザなしで、htmlをスクレイピングした後、Webページのjavascriptのロードイベントを実行する方法はありますか。つまり、javascript を介してレンダリングされた Web コンテンツをスクレイピングする必要があります。たとえば、BBC ニュース Web ページの vedio は、ページの読み込み後に javacscript を介してレンダリングされます。http://www.bbc.co.uk/news/video_and_audio/

4

2 に答える 2

0

いいえ、私の知る限りでは。コンテンツが Javascript によってレンダリングされる場合、ブラウザが必要です。ブラウザを自動化することが可能です: http://seleniumhq.org/

于 2012-06-27T14:15:16.710 に答える
0

私はしばしば 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()
于 2012-07-16T06:47:26.147 に答える