@andray15

Как получить скриншот сайта в python 3.4?

Создаю бота для телеграма, мне необходимо получить скрин сайта, я использовал такой код:
class MakeScreenshot(QWebView):
def __init__(self):
self.app = QApplication(sys.argv)
QWebView.__init__(self)
self._loaded = False
self.loadFinished.connect(self._loadFinished)

def wait_load(self, delay = 0):
while not self._loaded:
self.app.processEvents()
time.sleep(delay)
self.loaded = False

def _loadFinished(self, result):
self._loaded = True

def get_image(self, url):
self.load(QUrl(url))
self.wait_load()

frame = self.page().mainFrame()
self.page().setViewportSize(frame.contentsSize())

image = QImage(self.page().viewportSize(),
QImage.Format_ARGB32)
painter = QPainter(image)
frame.render(painter)
painter.end()
return image

Все отлично работало, но когда бота использовал второй пользователь, то я получил вот такую ошибку:
Ошибка сегментирования (сделан дамп памяти)
При последующих запусках выдавало это:
WARNING: QApplication was not created in the main() thread.
bot.py: Fatal IO error: client killed
Ошибка сегментирования (сделан дамп памяти)
Как можно по-другому делатьь скриншоты сайтов? Так, чтобы даже при одновременном использовании несколькими пользователями бот продолжал работать?
  • Вопрос задан
  • 759 просмотров
Решения вопроса 1
yarkov
@yarkov
Помог ответ? Отметь решением.
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы