Конвертировать URL в скриншот (скрипт) - PullRequest
7 голосов
/ 28 сентября 2010

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

Мне нужен скрипт (PHP, Python (даже фреймворк Django)), который получает URL (строку) и выводит файл скриншота на выходе (файл gif, png, jpg). UPD:

Мне нужно динамически создать страницу, где напротив URL будет размещен скриншот страницы с таким же URL.

Ответы [ 7 ]

7 голосов
/ 28 сентября 2010

Зачем вам нужен скрипт, если вы можете использовать службу с другого сайта?
Проверьте, например, что я использую: WebSnapr http://www.websnapr.com/
Или проверьте http://www.google.ro/search?ie=UTF-8&q=website+thumbnail, если что-то еще подходит вашемузапрос.

1 голос
/ 29 марта 2018

Решение с использованием Google Page Speed ​​- проверено и работает.

//SOLUTION 1

<?php
$link = "http://example.com";
$googlePagespeedData = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$link&screenshot=true");
$googlePagespeedData = json_decode($googlePagespeedData, true);
$screenshot = $googlePagespeedData['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot); 
$show_link = "<a href='$link'><img src=\"data:image/jpeg;base64,".$screenshot."\" /></a>";
echo $show_link;

//SOLUTION 2

$name = 'test';
$googlePagespeedData = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$link&screenshot=true");
$googlePagespeedData = json_decode($googlePagespeedData, true);
$screenshot = base64_decode($googlePagespeedData['screenshot']['data']);
$data = str_replace('_','/',$googlePagespeedData['screenshot']['data']);
$data = str_replace('-','+',$data);
$decoded = base64_decode($data);
file_put_contents('myfolder/'.$name.'.jpg',$decoded);
$file_name = "$name.jpg";

/*
-- IMPORTANT INFORMATION -- READ BELOW --

Choose how to proceed!
1. Use the above to display screenshots of links = longer processing time for multiple links.
2. Save image to a file, reference the saved image = more disk space needed if multiple links.

Note the trade off between processing time and disk space, if you're on a shared hosting platform with a small disk space limit and envisage or already have a lot of users (forums beware) you may want to consider a bigger hosting plan or even a dedicated server.

*/
?>
1 голос
/ 23 июня 2015

PhantomJS - лучший вариант для создания скриншота из URL. Следующий скрипт демонстрирует простейшее использование захвата страницы. Он загружает домашнюю страницу Github, а затем сохраняет его как изображение, github.png. Код

var page = require('webpage').create();
page.open('http://github.com/', function() {
  page.render('github.png');
  phantom.exit();
});

Для запуска этого примера создайте новый файл с именем github.js. Скопируйте и вставьте приведенный выше код в файл github.js. В командной строке запустите этот новый сценарий с PhantomJS:

phantomjs github.js

Существует множество проектов для создания скриншотов с использованием PhantomJS. Pageres создает надежные скриншоты на основе NodeJS и PhantomJS.

0 голосов
/ 14 января 2014

Если вы являетесь семьей с Python, вы можете использовать PyQt4.Эта библиотека поддерживает получение скриншота с URL.

0 голосов
/ 05 января 2013

Существует также http://webshot.mine.sk/ бесплатно без ограничений, несколько API (js, jquery, php)

0 голосов
/ 18 апреля 2012
<img src='http://zenithwebtechnologies.com.au/thumbnail.php?url=www.subway.com.au'>

Передавайте URL в качестве аргумента, и вы получите изображение для более подробной информации, проверьте эту ссылку http://zenithwebtechnologies.com.au/auto-thumbnail-generation-from-url.html

0 голосов
/ 28 сентября 2010

Вы можете использовать, как я, API shotbox

Это по-французски, но все же быстро:

  • Использовать http://add.shotbot.net/k= ключ / URL , где ключ - это ваш ключ API, а URL ... страница, которую вы хотите создать в виде скриншота
  • Использовать http: //static.shotbot.net/md5url/format.jpg или http://cache.shotbot.net/s=format/url где формат может быть 80 (80x60), 92 (92x69), 120 (экран 120x90), 160 (160x120), 240 (240x180), 320 (320x240), 1024 (1024x768)

Чтобы получить ключ API: http://translate.google.fr/translate?hl=fr&sl=fr&tl=en&u=http%3A%2F%2Fwww.shotbot.net%2Fcreer-un-compte-webmaster.php

...