you_are_enot
@you_are_enot
Пограммист любитель

Как скачать картинку капчи?

С помощью модуля http или request нужно скачать картинку капчи.
const  request = require('request');
const uri = 'https://ext.captcha.yandex.net/image?key=001H7F4Pt8xuKG6qu8iZQHJxXHaANjOE';
request.head(uri, function(err, res, body){
        console.log('content-type:', res.headers['content-type']);
        console.log('content-length:', res.headers['content-length']);
        request(uri).pipe(fs.createWriteStream('cap.gif'));
    });


content-type: undefined
content-length: undefined


const https = require('https');
const fs = require('fs');

https.get('https://ext.captcha.yandex.net/image?key=001H7F4Pt8xuKG6qu8iZQHJxXHaANjOE', function(response){
    response.pipe(fs.createWriteStream('captcha.gif'));
});


Оба примера сохраняют картинку с следующим содержанием.
5c4a16acc497a503069200.png
  • Вопрос задан
  • 598 просмотров
Решения вопроса 1
Grigory90
@Grigory90
const fs = require('fs');
const { resolve } = require('path');
const { promisify } = require('util');
const writeFile = promisify(fs.writeFile);
const got = require('got');

async function getImage(url)
{
  try
  {
    const { body, statusCode, statusMessage } = await got(url, { encoding: null });
    
    if (statusCode === 200)
    {
      await writeFile(resolve('.', 'newCaptchaAnchor.gif'), body);
    }
    else
    {
      throw new Error(statusMessage);
    }
  }
  catch(err)
  {
      throw new Error(err);
  }
}

getImage('https://developers.google.com/recaptcha/images/newCaptchaAnchor.gif')
  .then(() => console.log('Complete....'));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы