@sashx

Почему парсер останавливается на определённом количестве фото?

Здравствуйте! Использую проект https://github.com/Ulbwaa/YandexImagesParser для прасинга картинок по фильтру. При этом парсер останавливается на 26 фото (ошибка не возвращается). Почему это происходит? (Код прикрепляю)

Parser

import time

from ImageParser import YandexImage
import httplib2
import time

parser = YandexImage()

for item in parser.search("стеллажи деревянные отзывы", sizes=parser.size.large):
    if ('.jpg' in item.url or '.jpeg' in item.url) and (item.url[-3] == '.' or item.url[-4] == '.'):
        h = httplib2.Http('.cache')
        PATH = item.url[item.url.rfind('/') + 1::]
        response, content = h.request(item.url)
        out = open(f"/Users/aleksandr/PycharmProjects/alexandr/Stillage/{PATH}", "wb")
        out.write(content)
        out.close()
        time.sleep(3)


  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 1
neuotq
@neuotq
Прокрастинация
Как я понял быстро глянув исходники, он просто берёт выдачу из поиска Яндекс картинок, парсит html, потом берёт данный из data поля. Так вот, на первой странице результатов и будет 30 штук. А далее нужно нажимать кнопочку либо скроллить если браузер и делать запрос на следующую страницу.
Нужно переписать решение на запрос через json.
Можно в ручную в браузере поэкспериментировать и выловить базовые параметры. В ответе json они дают и количество страниц, так что можно спокойно по ним идти.
Форкните срипт перепишите под себя
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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