Задать вопрос

Как спарсить изображения с Yandex картинок?

Добрый день.
Накидал следующий код, но чет не получается скачать картинки.
def SaveImageYandex(text):
    URL = 'https://yandex.ru/images/search?text=' + text
    headers = { 'accept':'*/*', 'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',}
    response = requests.get(URL, headers=headers)
    soup = BeautifulSoup(response.content, 'html.parser')
    items = soup.findAll('div', class_='serp-item__preview')
    for item in items:
        href = item.find('a', class_='serp-item__link').get('href')
        if href:
            foto_url = 'https://yandex.ru' + href
            response_sec = requests.get(foto_url, headers=headers)
            soup_sec = BeautifulSoup(response_sec.content, 'html.parser')
            items_sec = soup_sec.findAll('div', class_='MMImageContainer')
            for item_sec in items_sec:
                href_sec = item.find('img', class_='MMImage-Preview').get('src')


После поиска картинок, выдается куча превьюшек, затем нажимаем на нужную превьюшку и переходим на другую страницу, где я так понимаю и нужно искать ссылку на картинку.
Получаю страницу поиска.
Получаю в переменную "foto_url" адрес для следующего перехода.
Затем пытаюсь перейти на страницу нужной превьюшки, но чет не хочет.
"items_sec" возвращает пустой список, хотя именно в этом диве и находятся ссылки на картинку.
Никак не пойму как пройти дальше.
Подскажите пожалуйста куда двигаться дальше?
Ну или может у кого-нибудь есть рабочий код для парсинга яндекс-картинок? Хотя бы до момента, как получить ссылку на картинку.
  • Вопрос задан
  • 4373 просмотра
Подписаться 4 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@Hiroshimakado
def get_link_img(url):
    response=requests.get(url,headers={'user_agent':f'{ua}'})
    soap= BeautifulSoup(response.content,"html.parser")
    links=soap.find_all("img",class_="serp-item__thumb justifier__thumb")
    for link in links:
        link = link.get("src")
        linked = "https:"+str(link)
        #writing to a file
        name=random.random()
        p = requests.get(linked)
        out = open(f"Galery\{name}.jpg", "wb")
        out.write(p.content)
        out.close()
Ответ написан
Комментировать
@gkots
у меня схожая проблема, мне интересно как вы ее по итогу решили? И прошу рассказать что по итогу сделали
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы