/yandex-pictures

Yandex pictures node module. I can't handle the captcha. πŸ™

Primary LanguageJavaScript

enter image description here

lang: ru en

yandex-pictures - ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса Yandex Image

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ?

ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ ЯндСкса Π½Π΅Ρ‚ API для получСния общСдоступных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (03.03.2018), Ρ‚ΠΎ Π²Ρ‡Π΅Ρ€Π° ΡƒΡ‚Ρ€ΠΎΠΌ я Π΅Ρ‰Π΅ Ρ€Π°Π· убСдился, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π½Π΅ сущСствуСт, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΎΠ½ Π΅ΡΡ‚ΡŒ , Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ "Π½Π° Π±ΡƒΠΌΠ°Π³Π΅" Yandex pictures api , я Ρ€Π΅ΡˆΠΈΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° основС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ API ЯндСкс ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ.

Π‘ Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ

Установим npm ΠΌΠΎΠ΄ΡƒΠ»ΡŒ yandex-pictures

$ npm install yandex-pictures -s

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ модуля

const yapic = require("yandex-pictures")

Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Π°ΠΌ понадобится ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ поиска

ΠžΠ±ΡŠΠ΅ΠΊΡ‚

ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠΊΠ»ΡŽΡ‡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ информация
text string ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΏΠΎ тСксту
url string ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°

Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠΊΠ»ΡŽΡ‡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ информация
isize string [large, medium, small, eq, wallpaper, eq] ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°
iw int * ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΏΡ€ΠΈ этом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° "isize" Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ "eq"
ih int * ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΏΡ€ΠΈ этом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° "isize" Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ "eq"
iorient string [square, horizontal, vertical] ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
type string [photo, clipart, lineart, face, demotivator] ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
icolor string [orange, color, gray, red, orange, yellow, cyan, green, blue] ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ Π³Π°ΠΌΠΌΡ‹
itype string [png, jpg, jpeg, gif] ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²
page int 0-49 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (смСщСнии)
count int 1-30 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ количСство ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ
comm int [*, 1] ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π² качСствС Ρ‚ΠΎΠ²Π°Ρ€Π°
recent string [*, D7] ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска Π±ΠΎΠ»Π΅Π΅ свСТих ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ
wp string [*, wh16x9_1366x768] ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола
site string * ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ сайтС
family int [0,1,2] ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для цСнзурирования поиска 0 - Π±Π΅Π· Ρ†Π΅Π½Π·ΡƒΡ€Ρ‹ 1 - ΡƒΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΉ 2 - сСмСйный поиск

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… функциях

асинхронная функция

const yapic = require("yandex-pictures")

yapic.getImage({
    
    text: "JSusDev",
    count: 2

}, (err, res) => {
    // ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΊΠ°ΠΊ Π²Π΅Π·Π΄Π΅...
    
    console.log(res) 
    
    /* Ρ‚ΡƒΡ‚ вСрнСтся массив ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ
       Ссли ΠΎΠ½ΠΈ Ссли Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ 
       пустой массив */

}) 

асинхронная (promise) функция

const yapic = require("yandex-pictures")

yapic.getImage({
    
    text: "JSusDev",
    count: 2

}).then(console.log)

синхронная функция

const yapic = require("yandex-pictures")

const images = yapic.getImageSync({

    text: "JSusDev",
    count: 2

})

console.log(images) 

/* Ρ‚ΡƒΡ‚ вСрнСтся массив ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ
   Ссли ΠΎΠ½ΠΈ Ссли Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ 
   пустой массив */

Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ Ρ‚Π΄

асинхронная функция

const yapic = require("yandex-pictures")

yapic.getImage({
    
    text: "JSusDev",
    count: 2

}, {/* ... ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ 'request' Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ структуру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с настроками запроса ... */}, (err, res) => {

    console.log(res)

}) 

синхронная функция

const yapic = require("yandex-pictures")

const images = yapic.getImageSync({

    text: "JSusDev",
    count: 2

}, {/* ... ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ 'sync-request' Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ структуру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с настроками запроса ... */})

console.log(images)

Π•Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²

асинхронная функция для поиска ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ

const yapic = require("yandex-pictures")

yapic.getImage({

    url: "https://static1.tgstat.com/public/images/channels/_0/82/822ecac8ab696703149dc7bb7ce2474d.jpg"

}, (err, res) => {

    console.log(res)
    
    /* Ρ‚ΡƒΡ‚ вСрнСтся массив ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ
       Ссли ΠΎΠ½ΠΈ Ссли Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ 
       пустой массив */
       
})

асинхронная функция для поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

const yapic = require("yandex-pictures")

yapic.getImage({

    text: "граТданская ΠΎΠ±ΠΎΡ€ΠΎΠ½Π°",
    icolor: "gray",
    isize: "eq",
    iw: 800,
    ih: 600,
    count: 3

}, (err, res) => {

    console.log(res)
    
    /* Ρ‚ΡƒΡ‚ вСрнСтся массив ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ
       Ссли ΠΎΠ½ΠΈ Ссли Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ 
       пустой массив */

})

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹

Мой ВСлСгам: @JSusDev, канал https://t.me/Jsusdevs

Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы ΠΈ/ΠΈΠ»ΠΈ прСдлоТСния, поТалуйста, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΌΠ½Π΅ Π² Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠΌΠ΅, Ссли Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ошибки я Π±ΡƒΠ΄Ρƒ ΠΎΡ‡Π΅Π½ΡŒ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½, Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ.

logo

yandex-pictures - library for pulling Ynadex images

Why?

since Yandex does not have an API to get public images (03.03.2018), yesterday morning I was once again convinced that it does not exist, or rather it is, but only "on paper" Yandex pictures api , I decided to develop it on the basis of the internal API Yandex images.

Get started

to begin, install the package yandex-pictures

$ npm install yandex-pictures -s

Examples

connect the module

const yapic = require("yandex-pictures")

and so to begin the desired object with the search parameters of the picture

Object

required parameter

options types info
text string search for string
url string search for a similar picture

optional parameter

options types default info
isize string [large, medium, small, eq, wallpaper, eq] used to search for images of a certain size " eq "used with" iw " and " ih"
iw int * is used to search for images of a certain size in the case when i size the "eq"
ih int * is used to search for images of a certain size in the case when i size the "eq"
iorient string [square, horizontal, vertical] used to search for an image of a specific orientation
type string [photo, clipart, lineart, face, demotivator] used to search for a certain type of picture
icolor string [orange, color, gray, red, orange, yellow, cyan, green, blue] used to search for color pictures
itype string [png, jpg, jpeg, gif] is used to search for images of a specific file type
page int 0-49 shift the search page
count int 1-30 the maximum number of images to return
comm int [*, 1] is used to search for pictures of product
recent string [*, D7] used to find a more recent picture
wp string [*, wh16x9_1366x768] is used to search images for your desktop
site string * used to search for images on the specified site
family int [1,2,3] allows you to configure search security used to censor search 0-uncensored 1-moderate 2-family search

The object is used in the following functions

asynchronous function

const yapic = require("yandex-pictures")

yapic.getImage({
    
    text: "JSusDev",
    count: 2

}, (err, res) => {

    console.log(res)

}) 

asynchronous (promise) function

const yapic = require("yandex-pictures")

yapic.getImage({
    
    text: "JSusDev",
    count: 2

}).then(console.log) 

synchronous function

const yapic = require("yandex-pictures")

const images = yapic.getImageSync({

    text: "JSusDev",
    count: 2

})

console.log(images)

for these functions, you can pass an optional header parameter and other crap

asynchronous function

const yapic = require("yandex-pictures")

yapic.getImage({
    
    text: "JSusDev",
    count: 2

}, {/* ... options request from lib 'request' ... */}, (err, res) => {

    console.log(res)

}) 

synchronous function

const yapic = require("yandex-pictures")

const images = yapic.getImageSync({

    text: "JSusDev",
    count: 2

}, {/* ... options request from lib 'sync-request' ... */})

console.log(images)

A few more examples

asynchronous search function for similar images

const yapic = require("yandex-pictures")

yapic.getImage({

    url: "https://static1.tgstat.com/public/images/channels/_0/82/822ecac8ab696703149dc7bb7ce2474d.jpg"

}, (err, res) => {

    console.log(res)

})

asynchronous function text search with other parameters

const yapic = require("yandex-pictures")

yapic.getImage({

    text: "граТданская ΠΎΠ±ΠΎΡ€ΠΎΠ½Π°",
    icolor: "gray",
    isize: "eq",
    iw: 800,
    ih: 600,
    count: 3

}, (err, res) => {

    console.log(res)

})

Contacts

my telegram: @JSusDev, channel https://t.me/Jsusdevs

if you have any questions and suggestions please email me in telegram if you find bugs I will be very grateful if you also let me know.

logo