Stack Overflow на русском Asked by Nikto on December 19, 2021
Мне нужно реализовать поиск по картинке используя сервис yandex images. Есть ли у Яндекса для этого api. Посмотрите пожалуйста видео: https://yadi.sk/i/sXMWHUQ4v9Ieqg. Там всё чётко показано, что мне нужно достичь.
UPD:
Нужно произвести поиск в Яндекс Картинках по изображению. Api не нашёл, значит пробуем как-нибудь по другому. Я пытался произвести некоторые манипуляции с url’ом, но у меня ничего не получилось. Поик по картинке выдаёт такой url: https://yandex.ru/images/search*url=https://upload.wikimedia.org/wikipedia/commons/b/b3/Tom_Ellis_%282016%29.jpg&rpt=imageview&cbir_id=2473989%2FK1tHfJK4h_-rsqPdcKTczA. Я пробовал поменять параметр url в ссылке выше, но ничего не вышло, я пришёл к старой странице поиска, с старой картинкой. Вы меня поняли, или нужно ещё подробностей
Я хочу сделать кросс-платформеный поиск по картинкам. На android и ios selenium заюзать не получится. Но, если это возможно ,то напишите, заюзаю selenium. Но, пока, selenium – крайний случай. Есть бот: https://t.me/EyeGodsBot. Он ищет по картинке с помощью сервиса yandex images. Когда я боту отправляю картинку, он выдаёт такой: url: https://yandex.ru/images/touch/search?source=collections&url=https://eyegod.info/amazon.com/cloud/getFiles/722371882/1595068745?token=6364d3f0f495b6ab9dcf8d3b5c6e0b01&rpt=imageview&redircnt=1595577295.1&cbir_id=3052891/8EczY91CDxYat0pODfSxHg. Этот url сильно отличаются от другого, выше переведённого. Увидев этот url я подумал, что у Яндекс картинок есть api. Но пока я его не нашёл. Дальше, по этому url’у, бот ищет похожие картинки. Вообще, url, который использует бот имеет параметр: token. Обычно это наблюдается в api.
https://yandex.ru/images/search?source=collections&rpt=imageview&url=urltofile& Это работает. Дальше просто распарсить
import requests
from bs4 import BeautifulSoup
url = r'https://yandex.ru/images/search?source=collections&rpt=imageview&url=https://canon-fan.com/sites/default/files/imagecache/small_image/moon.jpg'
soup = BeautifulSoup(requests.get(url).text, 'lxml')
similar = soup.find_all('li', class_='cbir-similar__thumb')
for i in similar:
print(f"https://yandex.ru{i.find('a').get('href')}n")
Этот код выдаёт ссылки на "Похожие картинки"
Answered by Barry Alen on December 19, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP