Как сделать скриншоты в python?

У меня есть идея, и я хочу ее реализовать. Но я не уверен, что это сработает. Итак, хотел получить ваш вклад.

 I would like to take screenshots of a url. 

Скажем, когда я открываю сайт www.espncricinfo.com Я хотел бы сделать скриншот этой страницы и сохранить локально. Это сохраненное изображение можно преобразовать в GIF позже. Может ли это быть достигнуто через python? Любые предложения / входы, чтобы сделать это?

обновленный

А также возможно ли сделать скриншот в браузере без головы?

Любые возможности для запуска браузера в headless mode (без графического интерфейса), а затем сделать снимок экрана определенной области веб-страницы?

2 ответа

Решение

Чтобы сделать снимок экрана с помощью python:

import pyscreenshot as ImageGrab

im = ImageGrab.grab()

im.save('path/to/image/folder/image_name.png')

im.show()

Я знаю, что уже немного поздно, но только что увидел этот вопрос, и на случай, если кто-то еще ищет мощный инструмент, чтобы делать скриншоты, а также использовать безголовые браузеры с python... Я просто хочу порекомендовать более глубоко изучить https://www.seleniumhq.org/. На YouTube доступно множество обучающих программ. Однако это ИМХО самый точный фреймворк для выполнения вашей задачи, ИМХО. Для создания снимков экрана вы можете определить разрешение экрана и т. Д.

Да и нет, если вы отправите запрос с помощью urllib, вы получите взамен HTML-код, который является первым шагом к отображению веб-страницы. Но вы должны создать эту веб-страницу с помощью браузера, в противном случае все, что вы увидите, это куча текста.

Есть некоторые библиотеки Python, которые могут сделать это, такие как pywebkitgtk, но они, вероятно, не предоставят вам лучший опыт и поддержку.

Другая вещь, которую вы можете попробовать - это использовать crod и firefox/chrome/ что угодно, а затем использовать python для автоматизации процесса.

Да, и, кстати, я настоятельно рекомендую обновить до python3

Другие вопросы по тегам