Сайт для изображения - PullRequest
       23

Сайт для изображения

5 голосов
/ 11 марта 2011

Я использую Python 3.1, и вы бы назвали меня опытным новичком:)

Мой вопрос прост: я пытаюсь создать простую программу, которая запрашивает у пользователей URL (или несколько URL)) и затем переходит на веб-сайт и делает снимок экрана (всей страницы, а не только того, что можно увидеть в браузере без прокрутки до конца).

Это проще, чем кажется, я хочу использоватьсуществующая платформа в сети, похожая на эту:

import subprocess
MYFILENAME = "google_screen"
MYURL = "www.google.com"
subprocess.Popen(['wget', '-O', MYFILENAME+'.png', 'http://images.websnapr.com/?url='+MYURL+'&size=s&nocache=82']).wait()

Хотя этот сайт не работает :(, мне интересно, возможно ли сделать это с этим сайтом , и еслиИтак, как? Если это невозможно, есть ли альтернативы?

Ответы [ 2 ]

3 голосов
/ 11 марта 2011

Существует пакет webkit2png, который вы можете использовать для этого, он расположен: здесь

Подробнее о этом сообщении в блоге

Пример из поста в блоге (скопирован в SO для сохранения, прочитайте пост в блоге, чтобы понять его, если у вас есть проблемы):

#!/usr/bin/env python
import sys
import signal

from PyQt4.QtCore import *
from PyQt 4.QtGui import *
from PyQt4.QtWebKit import QWebPage

def onLoadFinished(result):
    if not result:
        print "Request failed"
        sys.exit(1)

    # Set the size of the (virtual) browser window
    webpage.setViewportSize(webpage.mainFrame().contentsSize())

    # Paint this frame into an image
    image = QImage(webpage.viewportSize(), QImage.Format_ARGB32)
    painter = QPainter(image)
    webpage.mainFrame().render(painter)
    painter.end()
    image.save("output2.png")
    sys.exit(0)


app = QApplication(sys.argv)
signal.signal(signal.SIGINT, signal.SIG_DFL)

webpage = QWebPage()
webpage.connect(webpage, SIGNAL("loadFinished(bool)"), onLoadFinished)
webpage.mainFrame().load(QUrl("http://www.google.com"))

sys.exit(app.exec_())

Редактировать: Ссылка на страницу загрузки pyqt4

0 голосов
/ 11 марта 2011

Вы можете использовать Selenium для получения скриншота, но это будет только то, что просматривает браузер.

...