首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用python截取网站截图结果为空白页面

用python截取网站截图结果为空白页面
EN

Stack Overflow用户
提问于 2015-06-11 22:03:10
回答 1查看 400关注 0票数 0

所以我试着用python脚本截取一个网站的截图:

代码语言:javascript
运行
复制
#! /usr/bin/python

import sys
import time
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

class Screenshot(QWebView):
    def __init__(self):
        self.app = QApplication(sys.argv)
        QWebView.__init__(self)
        self._loaded = False
        self.loadFinished.connect(self._loadFinished)

    def capture(self, url, output_file):
        self.load(QUrl(url))
        self.wait_load()
        time.sleep(120)
        # set to webpage size
        frame = self.page().mainFrame()
        self.page().setViewportSize(frame.contentsSize())
        # render image
        image = QImage(self.page().viewportSize(), QImage.Format_ARGB32)
        painter = QPainter(image)
        frame.render(painter)
        painter.end()
#        print 'saving', output_file
        image.save(output_file)

    def wait_load(self, delay=0):
        # process app events until page loaded
        while not self._loaded:
            self.app.processEvents()
            time.sleep(delay)
        self._loaded = False

    def _loadFinished(self, result):
        self._loaded = True

    s = Screenshot()
    s.capture('http://csgo-stats.com/maschs/', 'csgo-stats.png')

它几乎适用于每个页面,但在网站csgo-stats.com/maschs (这是我的个人资料页面)上,它只会导致页面上没有信息的空白页面。当我在浏览器中打开页面时,它需要几秒钟的时间来加载,并且它会正确地显示所有内容。结果如下所示:

我使用的是树莓派和Python 2.7

EN

回答 1

Stack Overflow用户

发布于 2015-06-11 22:21:37

当您的浏览器界面认为所有内容都已确定并且所有初始Javascript代码都已运行时,它可能会触发“页面已加载”事件。

您尝试捕获的页面可能正在使用基于加载时发出的异步请求的附加数据填充内容。

你必须弄清楚如何等待足够的事件和状态,或者只是盲目地等待,直到你认为它已经足够更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30804438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档