使用Python中的PySide通过javascript添加内容来刮取网站

时间:2014-04-30 17:09:43

标签: javascript python qt pyqt4 pyside

我试图在python中使用PyQt4从网站上抓取数据。但是,这个网站正在通过javascript添加我感兴趣的数据。有没有办法让Selnium在返回之前等待数据?到目前为止,我们已经尝试过:

import sys
from PySide.QtGui import *
from PySide.QtCore import *
from PySide.QtWebKit import *
from BeautifulSoup import BeautifulSoup

def test():
    print "coucou"

class Render(QWebPage):
      def __init__(self, url):
           self.app = QApplication(sys.argv)
           QWebPage.__init__(self)
           self.loadFinished.connect(self._loadFinished)
           self.timerScreen = QTimer()
           self.timerScreen.setInterval(10000)
           self.timerScreen.setSingleShot(True)
           self.timerScreen.timeout.connect(test)
           self.mainFrame().load(QUrl(url))
           self.app.exec_()

      def _loadFinished(self, result):
           self.frame = self.mainFrame()
           self.app.quit()

def main():
    url = '[redacted]'
    r = Render(url)
    html = r.frame.toHtml()
    page = QWebPage()
    page.settings().setAttribute(QWebSettings.AutoLoadImages, False)
    page.settings().setAttribute(QWebSettings.PluginsEnabled, False)
    page.mainFrame().setHtml(html)
    dom = page.mainFrame().documentElement()
    li = dom.findFirst("body")
    print html
    if not li.isNull():
        classe = li.attribute("class")
        text = li.toPlainText()
main()

不幸的是,页面内容没有显示相关数据。 我们使用的是Python 2.7.5和PySide 1.2.2。

提前致谢。

0 个答案:

没有答案