我似乎无法让我的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