Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 4, 2010 20:56:52

zili
От:
Зарегистрирован: 2010-05-19
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

html to jpg

Здравствуйте, подскажите пожалуста как можно сохранить например страницу python.su как картинку со все содержимым ?



Офлайн

#2 Ноя. 4, 2010 21:45:44

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

html to jpg

Пили соотв. движки, Gecko или WebKit.
Сразу предупреждаешь, опухнешь. Это крайне радикальное решение.

..bw



Офлайн

#3 Ноя. 4, 2010 22:58:38

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

html to jpg

Не не опухнет ибо все украдено до нас - http://www.semicomplete.com/blog/geekery/xvfb-firefox.html -но это только в иксах работает



Офлайн

#4 Ноя. 5, 2010 09:00:53

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

html to jpg

xvfb это не совсем иксы, а грубо говоря демон, эмулирующий их.

Офлайн

#5 Ноя. 5, 2010 18:23:23

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

html to jpg

:)
http://code.google.com/p/spynner/
брать из svn
для него нужен PyQt4

import spynner
b = spynner.Browser()
b.load('http://python.su')
b.snapshot().save('python_su.png')



Офлайн

#6 Ноя. 5, 2010 21:55:03

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

html to jpg

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

Офлайн

#7 Ноя. 6, 2010 00:15:40

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

html to jpg

:)
а что непонятного в фразе “брать из svn”?
возможно ещё придется перед лоадом вызвать
b.create_webview()



Офлайн

#8 Ноя. 6, 2010 17:04:07

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

html to jpg

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
Если Вас не затруднит, можете дать рабочий кусок кода, буду очень признателен.

Офлайн

#9 Ноя. 7, 2010 01:25:25

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

html to jpg

:)
в посте, где вы написали про ошибку, явно видно, что функции snapshot нужно передать параметр, а в приведённом примере функции - этот параметр не нужен
это наводит на мысль, что вы сначала установили spynner используя setuptools (easy_install), а потом установили версию из svn (python setup.py install)
к чему это я…
у вас установлено две либы, но работает та, которая установлена через setuptools
удалите из файла easy_install.pth упоминание о станой либе и попробуйте ещё раз…



Офлайн

#10 Ноя. 7, 2010 15:28:33

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

html to jpg

ofigetitelno спасибо большое! Заработало! Но, выделяет на разрешении экрана 1280х1024, картинку 206х6689 возможно ли получить полноразмерный скриншот?

Отредактировано (Ноя. 7, 2010 15:31:37)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version