我似乎無法讓我的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似乎解決了同樣的問題,但盡我所能努力,我只是無法理解解決方案,並在我的代碼中採用它。它似乎是針對特定問題量身定製的解決方案,我無法弄清楚它究竟如何適用於我的問題,即使它看起來相似。
任何幫助將不勝感激,謝謝!
嘗試使用dryscrape它聲稱刮任何JS網站。 –
@RajanChauhan還沒有嘗試過,我會試試看,謝謝! – Maya