2017-08-15 109 views
-1

我似乎無法讓我的python網絡刮板工作與JS呈現網站,調用服務器填充網頁。就拿本網站(https://playon.co/#/en/games-lobby),如果我用這個腳本:JS生成的頁面沒有完全呈現爲html時,刮

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


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 = 'https://playon.co/#/en/games-lobby' 
r = Render(url) 
result = r.frame.toHtml() 
print(result) 

它工作正常的渲染網站大多數JS,就像任何其他的方法,如硒,BeatifulSoup等,但他們都失敗在網站調用服務器來填充頁面內容時正確呈現html。

我在stackoverflow上找到了one similar question似乎解決了同樣的問題,但盡我所能努力,我只是無法理解解決方案,並在我的代碼中採用它。它似乎是針對特定問題量身定製的解決方案,我無法弄清楚它究竟如何適用於我的問題,即使它看起來相似。

任何幫助將不勝感激,謝謝!

+0

嘗試使用dryscrape它聲稱刮任何JS網站。 –

+0

@RajanChauhan還沒有嘗試過,我會試試看,謝謝! – Maya

回答

0

您鏈接的解決方案假定存在您希望提供JSON格式數據的URL的版本。如果您沒有類似的URL版本,那麼這種方法對您沒有任何用處。

+0

好的,謝謝澄清。任何想法是什麼使這個版本的URL無法響應標準的js刮? – Maya