【发布时间】:2017-08-15 18:00:26
【问题描述】:
我似乎无法让我的 python 网络爬虫与 JS 呈现的网站一起调用服务器来填充网页。以这个网站(https://playon.co/#/en/games-lobby)为例,如果我使用这个脚本:
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 渲染网站,就像任何其他方法一样,如 Selenium、BeatifulSoup 等,但是当网站调用服务器以填充页面内容时,它们都无法正确渲染 html。
我在 stackoverflow 上找到了 one similar question,它似乎可以解决同样的问题,但尽管我努力尝试,但我无法理解解决方案并在我的代码中采用它。这似乎是针对该特定问题的量身定制的解决方案,尽管看起来很相似,但我无法弄清楚它究竟如何适用于我的问题。
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
尝试使用它声称可以抓取任何 JS 网站的dryscrape。
-
@RajanChauhan 没试过,我试试,谢谢!
标签: javascript python html web-scraping