【发布时间】:2016-03-18 06:31:57
【问题描述】:
最近我使用 PyQt4 来抓取 google map 的网页。 但是截图图片的大小和我在谷歌地图上看到的不完全一样
这是 PyQt4 的结果
但原来的网页是这样的
看起来它只捕获了网页的中心部分。
谁能帮我解决这个问题?
这是将网页捕获为图像的代码
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()
#print frame.contentsSize()
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
我尝试手动设置视口的大小(见下文),但没有成功...
self.page().setViewportSize(PyQt4.QtCore.QSize(1280, 480))
非常感谢!!
【问题讨论】:
标签: python python-2.7 google-maps pyqt4