Форум сайта python.su
0
Здравствуйте, подскажите пожалуста как можно сохранить например страницу python.su как картинку со все содержимым ?
Офлайн
20
Пили соотв. движки, Gecko или WebKit.
Сразу предупреждаешь, опухнешь. Это крайне радикальное решение.
..bw
Офлайн
8
Не не опухнет ибо все украдено до нас - http://www.semicomplete.com/blog/geekery/xvfb-firefox.html -но это только в иксах работает
Офлайн
41
xvfb это не совсем иксы, а грубо говоря демон, эмулирующий их.
Офлайн
0
:)
http://code.google.com/p/spynner/
брать из svn
для него нужен PyQt4
import spynner
b = spynner.Browser()
b.load('http://python.su')
b.snapshot().save('python_su.png')
Офлайн
9
WinXp sp3, pyton 2.65, pyQt 4.7.7, spynner 0.0.3 на вашем примере выдает ошибку
b.snapshot().save('python_su.png')
TypeError: snapshot() takes at least 2 arguments (1 given)
QWaitCondition: Destroyed while threads are still waitingОфлайн
0
:)
а что непонятного в фразе “брать из svn”?
возможно ещё придется перед лоадом вызвать
b.create_webview()
Офлайн
9
ofigetitelno доброго времени суток!
брал из svn - версия не поменялась - spynner 0.0.3, вес приложения тоже не поменялся - 64 635.
Залез в исходник а там действительно нужно 2 параметра:
def snapshot(self, box=None, format=QImage.Format_ARGB32):
"""
Take an image snapshot of the current frame.
@param box: 4-element tuple containing box to capture (x1, y1, x2, y2).
If None, capture the whole page.
@param format: QImage format (see QImage::Format_*).
@return: A QImage image.
Typical usage:
>>> browser.load(url)
>>> browser.snapshot().save("webpage.png")
"""
if box:
x1, y1, x2, y2 = box
w, h = (x2 - x1), (y2 - y1)
image0 = QImage(QSize(x2, y2), format)
painter = QPainter(image0)
self.webpage.mainFrame().render(painter)
painter.end()
image = image0.copy(x1, y1, w, h)
else:
image = QImage(self.webpage.viewportSize(), format)
painter = QPainter(image)
self.webpage.mainFrame().render(painter)
painter.end()
return image
Офлайн
0
:)
в посте, где вы написали про ошибку, явно видно, что функции snapshot нужно передать параметр, а в приведённом примере функции - этот параметр не нужен
это наводит на мысль, что вы сначала установили spynner используя setuptools (easy_install), а потом установили версию из svn (python setup.py install)
к чему это я…
у вас установлено две либы, но работает та, которая установлена через setuptools
удалите из файла easy_install.pth упоминание о станой либе и попробуйте ещё раз…
Офлайн
9
ofigetitelno спасибо большое! Заработало! Но, выделяет на разрешении экрана 1280х1024, картинку 206х6689 возможно ли получить полноразмерный скриншот?
Отредактировано (Ноя. 7, 2010 15:31:37)
Офлайн