Найти - Пользователи
Полная версия: html to jpg
Начало » Python для новичков » html to jpg
1 2
zili
Здравствуйте, подскажите пожалуста как можно сохранить например страницу python.su как картинку со все содержимым ?
bw
Пили соотв. движки, Gecko или WebKit.
Сразу предупреждаешь, опухнешь. Это крайне радикальное решение.

..bw
ziro
Не не опухнет ибо все украдено до нас - http://www.semicomplete.com/blog/geekery/xvfb-firefox.html -но это только в иксах работает
slav0nic
xvfb это не совсем иксы, а грубо говоря демон, эмулирующий их.
ofigetitelno
:)
http://code.google.com/p/spynner/
брать из svn
для него нужен PyQt4
import spynner
b = spynner.Browser()
b.load('http://python.su')
b.snapshot().save('python_su.png')
helm2004
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
ofigetitelno
:)
а что непонятного в фразе “брать из svn”?
возможно ещё придется перед лоадом вызвать
b.create_webview()
helm2004
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
Если Вас не затруднит, можете дать рабочий кусок кода, буду очень признателен.
ofigetitelno
:)
в посте, где вы написали про ошибку, явно видно, что функции snapshot нужно передать параметр, а в приведённом примере функции - этот параметр не нужен
это наводит на мысль, что вы сначала установили spynner используя setuptools (easy_install), а потом установили версию из svn (python setup.py install)
к чему это я…
у вас установлено две либы, но работает та, которая установлена через setuptools
удалите из файла easy_install.pth упоминание о станой либе и попробуйте ещё раз…
helm2004
ofigetitelno спасибо большое! Заработало! Но, выделяет на разрешении экрана 1280х1024, картинку 206х6689 возможно ли получить полноразмерный скриншот?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB