我想要实现的是获得一个网站截图从任何网站在python。
环境: Linux
发布于 2009-07-29 01:12:48
在Mac上,你可以使用webkit2png,在Linux+KDE上,你可以使用khtml2png。我已经尝试过前者,它工作得很好,听说后者正在投入使用。
我最近遇到了声称是跨平台的QtWebKit (我猜是Qt将WebKit引入了他们的库)。但是我从来没有试过,所以我不能告诉你更多。
QtWebKit链接显示了如何从Python中访问。您至少应该能够使用子进程对其他进程执行相同的操作。
发布于 2012-08-20 09:21:49
这是一个使用webkit的简单解决方案:http://webscraping.com/blog/Webpage-screenshots-with-webkit/
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')
发布于 2018-05-31 11:00:54
使用Selenium可以做到
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
https://stackoverflow.com/questions/1197172
复制相似问题