他们是否有任何方式在抓取 html 后执行网页 javascript 的加载事件,而无需任何浏览器。即我需要抓取通过 javascript 呈现的网页内容,例如 bbc 新闻网页的视频在页面加载后通过 javascript 呈现,我有兴趣抓取视频链接和镜头描述。http://www.bbc.co.uk/news/video_and_audio/
问问题
103 次
2 回答
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 回答
0
不,据我所知。如果内容由 Javascript 呈现,则需要一个浏览器。可以自动化浏览器:http ://seleniumhq.org/
于 2012-06-27T14:15:16.710 回答