• Как парсить всю страницу через API?

    @Novenkij
    Обычно логика такая.
    limit - количество записей на странице.
    offset - на сколько сдвинуто начало, относительно первой записи.

    Цикл по лимитам тут лишний, значения лимитов перебирать не нужно.
    Допустим, мы будем перебирать по 100 записей на каждой странице, для этого задаем limit = 100. Теперь, каждую новую страницу нам нужно увеличивать offset (сдвиг) на 100. Шаг задается третьим значением в range (начало, конец, шаг)
    Т.е. на первой странице мы получаем записи от 1 до 101, на второй от 102 до 202 и т.д.

    limit = 100
    for offset in range(offset, offset+20000, 100):
        pars_inst_2 = fetch(f'https://rest.epicstars.com/api/v1/users/platform/?limit={limit}&offset={offset}&orderby=-order_subscribers&type=INSTAGRAM', {


    P.S. Два цикла про одно и тоже запускать тоже нет смысла. Либо цикл while, а внутри цикла изменяешь значение переменной, либо цикл for и он закончится сам, когда достигнет последнего значения в последовательности.
    Ответ написан
    Комментировать
  • Почему генератор yield начинает работу с последней страницы сайта?

    @Novenkij
    Привет.
    Ты упустил отступ для кода
    for i in data:      
            card_url = 'https://scrapingclub.com' + i.find('a').get('href') 
            yield card_url

    Сейчас происходит вот что. Цикл for count in range(1, 8) перебирает страницы, заканчивая на 8-й.
    После этого начинает работать цикл for i in data
    Т.е. второй цикл сейчас последовательно выполняется за первым, а тебе нужен вложенный цикл.
    Ответ написан
    Комментировать
  • Не получается присоединить api и текст пользователя Telegram Bot?

    @Novenkij
    1) Нужно создать функцию, которая будет искать фильмы. Например
    kinopoisk = KP(token='token') 
        def find_film(query):
        search = kinopoisk.search(query) 
        return search

    2) Нужно обработать сообщение, которое пришло от пользователя и вызвать функцию с передачей в нее текста
    ...
    list_of_films = find_film(message.text)

    3) Нужно отправить пользователю сообщение со тем, что есть в списке list_of_films или сообщение, что ничего не нашлось, если список пустой.

    Удачи!

    PS.
    bot.send_message(message.from_user.id, ' Введите название фильма:   ' , reply_markup =keyboard)

    тут reply_markup =keyboard лишнее, так как от пользователя ожидается не нажатие кнопки, а произвольный текст.
    Ответ написан
    Комментировать
  • Пересылка смс из одного телеграмм канала в мой бот message_handler?

    @Novenkij
    Возможно, у бота не хватает прав, чтобы читать сообщения в канале? Соответственно, переслать ничего не может.
    Ответ написан
  • Как добиться последовательной работы скрипта Python с выводом результатов?

    @Novenkij
    Скорей всего ошибка в логике кода и код вывода результатов начинается выполняется после того, когда парсер полностью отработал. Либо окно не обновляется, пока не завершиться процесс.
    Без примеров кода сложно ответить не вопрос.
    Ответ написан
  • Как исправить ошибку: Unresolved attribute reference 'message_handler' for class 'TeleBot'?

    @Novenkij
    Привет.
    Во-первых, не стоит палить ключ доступа к своему боту в интернете. Зная ключ, любой им сможет воспользоваться. Сменить можно через BotFather
    3 и 4 - это просто несоблюдение правил форматирования кода, на функциональность не влияет. Нужно добавить строку в пустой файл и еще одну перед декоратором

    Попробовал запустить пример - у меня ошибок не вызвало. Если используется Venv, проверьте, что там используется именно эта версия pyTelegramBotAPI 4.7.1
    Ответ написан
    Комментировать