Executando verificação de segurança...
5

Dúvida: Existe alguma forma de fazer screenshot de um site automaticamente?

Opa, não sei se eu me expressei corretamente no título, mas vou explicar melhor aqui.

Eu preciso de algum código que entre em um site e capture a tela automaticamente (em segundo plano), ou de alguma API que faça algo parecido.
Ah, e eu preciso que a screenshot seja salva em uma pasta específica.

Alguém por aqui sabe como fazer algo assim?

Carregando publicação patrocinada...
4
4
0
4

Eu utilizei recentemente um sistema em react quando estava seguindo as aulas do NLW return da rockeatseat que pode ser que funcione no seu projeto, pra isso usamos a biblioteca 'html2canvas', a vantagem é que convertemos ela para uma imagem base64 que pode ser usada para armazenar em banco de dados e tal, por ser uma imagem em formato de texto

const canvas = await html2canvas(document.querySelector('html')!);
const base64image = await canvas.toDataURL('image/png');
4

ahh, valeu por responder. Acabei achando uma solução ainda agora, a API do savepege.io.

Fiz o cadastro, peguei a minha API key da API e achei como fazer um request na documentação. https://docs.savepage.io/

Um exemplo usando CURL fica assim:
curl -X POST https://api.savepage.io/v1 --data "key={APIKEY}q={SITE}" --output image.jpg

Eu adaptei isso para usar a API com Python:

img = post("https://api.savepage.io/v1/?key={APIKEY}q={SITE}&nocookie&noads")
open("teste.jpg", 'wb').write(img.content)

Foi o que serviu pra mim, mas na documentação existem diversos outros parâmetros pra você usar.
A API gratuita aceita pouco mais de 7 mil requests por mês.

2
3

ahh, obrigado por responder. Acabei achando uma solução ainda agora, a API do savepege.io.

Fiz o cadastro, peguei a minha API key da API e achei como fazer um request na documentação. https://docs.savepage.io/

Um exemplo usando CURL fica assim:
curl -X POST https://api.savepage.io/v1 --data "key={APIKEY}q={SITE}" --output image.jpg

Eu adaptei isso para usar a API com Python:

img = post("https://api.savepage.io/v1/?key={APIKEY}q={SITE}&nocookie&noads")
open("teste.jpg", 'wb').write(img.content)

Foi o que serviu pra mim, mas na documentação existem diversos outros parâmetros pra você usar.
A API gratuita aceita pouco mais de 7 mil requests por mês.