Сайт к изображению -- python поле с участием image поле с участием python-3.x пол Связанный проблема

Website to image


5
vote

проблема

русский

Я запускаю 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()   

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

Английский оригинал

I'm running Python 3.1 and you would call me an advanced novice :)

My question is simple: I'm trying to make a simple program which asks the users for a URL (or multiple URLs) and then goes to the website and takes a screenshot (of the whole page, not just what can be seen in the browser without scrolling all the way down).

It's simpler then it sounds, I want to use an existing platform on the web, similar to this:

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() 

Although this website does not work :(, I'm wondering is it possible to do it with this website and if so, how? If it is not possible, are there any alternatives?

</div
        

Список ответов

3
 
vote
vote
Лучший ответ
 

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

.

Дополнительные данные на в блоге

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

 <код> #!/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

 

There is a package called webkit2png that you can use for this, its located: here

More information on this blog post

Example from blog post(copied to SO for preservation, read the blog post to understand it if you have issues):

#!/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_()) 

Edit: Link to the pyqt4 download page

</div
 
 
         
         
0
 
vote

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

 

You can use Selenium to get a screenshot, but it'll only be what is viewed by the browser.

</div
 
 

Связанный проблема

2  Добавьте номера в шестнадцатеричном базе без конвертации баз?  ( Add numbers in hexadecimal base without converting bases ) 
Мне нужно написать функцию, которая получает два числа в шестнадцатеричном базе, и вычисляет сумму обоих из них, мне не разрешено преобразовывать их в десятич...

1  Как мне позвонить в родительский класс в подклассе?  ( How do i call on a parent class in a subclass ) 
Мне нужно создать вызов несвязанного метода, чтобы установить имя и листья, и я не знаю, как. Любая помощь ценится. Мой код: <код> class Plant(object): ...

0  Запустите сценарий Python в колбу  ( Run python script into flask ) 
У меня есть настольное приложение для обнаружения лиц, написанных в сценарии Python, используя OpenCV и Numpy. Я хочу поставить эти файлы Python в колбу и зап...

2  Высокое использование ЦП в ткани 1.0.0  ( High cpu usage in fabric 1 0 0 ) 
в ткани 0,9, все работает нормально, но в 1.0.0, следующий скрипт ткани показывает 100% загрузку CPU в <Код> top : <код> from fabric.api import run def tes...

2  Скапировка не вызывает никакой другой функции после «__init__»  ( Scrapy not calling any other function after init ) 
ОС: Ubuntu 16.04 Стек - Scrapy 1.0.3 + Selenium Я довольно новичок в Scrape, и это может звучать очень простое, но в моем пауке только « init » выполняется. Л...

51  Запросы Python «Пропасные зависимости от поддержки носков» при использовании SOCKS5 из терминала  ( Pythons requests missing dependencies for socks support when using socks5 fro ) 
Я пытаюсь взаимодействовать с API из My Python 2.7 Shell, используя пакет, который опирается на запросы Python. Вещь - это удаленный адрес блокируется моей се...

16  Как преобразовать шестигранную строку в шестнадцатеричный номер?  ( How to convert hex string to hex number ) 
У меня есть целое число в бывшем. 16 И я пытаюсь преобразовать этот номер в шестнадцатеричный номер. Я пытался достичь этого, используя функцию Hex, но всякий...

9  От CVX до CVXPY или CVXOPT  ( From cvx to cvxpy or cvxopt ) 
Я пытался пройти какой-код из Matlab в Python. У меня такая же проблема с выпуклой оптимизацией, работающая на MATLAB, но у меня возникли проблемы, передавающ...

1  Выполнить файл SQL, возвращать результаты как Pandas DataFrame  ( Execute sql file return results as pandas dataframe ) 
У меня есть сложный запрос SQL Server, который я хотел бы выполнить из Python и вернуть результаты в виде файла PandaFrame. Моя база данных читается только ...

2  Векторный способ применить 3-измерительную маску к RGB в Pytorch  ( Vectorized way to apply a 3 dimension mask to rgb in pytorch ) 
У меня есть тензор HXWX3, представляющий изображение RGB, и тензора RGBX3 (Boolean) Tensor в качестве ввода. Предполагается, что для каждого (i, j) в маске те...

1  Нахождение корней с Scipy.Optimize.root  ( Finding roots with scipy optimize root ) 
Я пытаюсь найти root y функции, называемой f с помощью python. Вот мой код: <код> def f(y): w,p1,p2,p3,p4,p5,p6,p7 = y[:8] t1 = w - 0.500371726*...

-4  Как суммировать значения при заворачивании аналогичного ключа, чтобы построить Dict  ( How to sum values when zipping similar key to build a dict ) 
У меня есть <код> A = [a, b, c, d, a, d, c] и <код> B=[1, 2, 3, 4, 5, 6, 7] Почему <код> dict(zip(A,B)) не возвращается <код> {'a': 6, 'b': 2, 'c': 10, '...

0  Почему этот сценарий Python работает на Ubuntu, но не распачин?  ( Why does this python script work on ubuntu but not raspbian ) 
Друг, и я создал следующий скрипт, использующий BeautifulSoup, чтобы получить HTML страницы работы, а затем добавить работу на массив, затем файл, затем отпра...

6  ReportLab 'LayoutError' Обработка и отладки  ( Reportlab layouterror handling and debugging ) 
Я работал с некоторыми сложными выходами PDF с ReportLab. Это, как правило, хорошо, но есть некоторые случаи, где я получаю LayoutErrors - это обычно потому, ...

0  После добавления клеток найдите мин и максимум пяти различных категорий в файле CSV  ( After appending cells find min and max of five different categories in a csv fi ) 
Привет всем У меня есть вопрос. Я просто сейчас изучаю мин и макс. У меня проблемы в нахождении мин и максимум пяти столбцов для каждой категории Вот, что...

Связанный проблема

2  Добавьте номера в шестнадцатеричном базе без конвертации баз? 
1  Как мне позвонить в родительский класс в подклассе? 
0  Запустите сценарий Python в колбу 
2  Высокое использование ЦП в ткани 1.0.0 
2  Скапировка не вызывает никакой другой функции после «__init__» 
51  Запросы Python «Пропасные зависимости от поддержки носков» при использовании SOCKS5 из терминала 
16  Как преобразовать шестигранную строку в шестнадцатеричный номер? 
9  От CVX до CVXPY или CVXOPT 
1  Выполнить файл SQL, возвращать результаты как Pandas DataFrame 
2  Векторный способ применить 3-измерительную маску к RGB в Pytorch 
1  Нахождение корней с Scipy.Optimize.root 
-4  Как суммировать значения при заворачивании аналогичного ключа, чтобы построить Dict 
0  Почему этот сценарий Python работает на Ubuntu, но не распачин? 
6  ReportLab 'LayoutError' Обработка и отладки 
0  После добавления клеток найдите мин и максимум пяти различных категорий в файле CSV