首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Python为网站截图/截图?

如何使用Python为网站截图/截图?
EN

Stack Overflow用户
提问于 2009-07-29 06:48:14
回答 8查看 135.1K关注 0票数 76

我想要实现的是获得一个网站截图从任何网站在python。

环境: Linux

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-07-29 01:12:48

在Mac上,你可以使用webkit2png,在Linux+KDE上,你可以使用khtml2png。我已经尝试过前者,它工作得很好,听说后者正在投入使用。

我最近遇到了声称是跨平台的QtWebKit (我猜是Qt将WebKit引入了他们的库)。但是我从来没有试过,所以我不能告诉你更多。

QtWebKit链接显示了如何从Python中访问。您至少应该能够使用子进程对其他进程执行相同的操作。

票数 19
EN

Stack Overflow用户

发布于 2012-08-20 09:21:49

这是一个使用webkit的简单解决方案:http://webscraping.com/blog/Webpage-screenshots-with-webkit/

代码语言:javascript
复制
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()
        # 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://webscraping.com', 'website.png')
s.capture('http://webscraping.com/blog', 'blog.png')
票数 51
EN

Stack Overflow用户

发布于 2018-05-31 11:00:54

使用Selenium可以做到

代码语言:javascript
复制
from selenium import webdriver

DRIVER = 'chromedriver'
driver = webdriver.Chrome(DRIVER)
driver.get('https://www.spotify.com')
screenshot = driver.save_screenshot('my_screenshot.png')
driver.quit()

https://sites.google.com/a/chromium.org/chromedriver/getting-started

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

https://stackoverflow.com/questions/1197172

复制
相关文章

相似问题

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