• Почему бот в телеграмме не реагирует на код?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Если это весь код вашего бота, то ничего удивительного. Вы только сконфигурировали его, но не добавили вызов метода, который будет "слушать" порт и запускать ваш обработчик.
    Ещё вы допустили только что слив секретного ключа вашего бот. Так делать нельзя. Нужно хранить ключ в отдельном секретном файле и импортировать или загружать его, не допускать добавления секретного файла в репозиторий.
    Ещё можно было бы сравнивать текст без учета регистра, чтобы "привет" и "Привет" были одной и той же командой.
    Вам также не помешает логирование в коде, чтобы понимать до куда доходит обработчик и что происходит в коде, какие сообщения приходят на самом деле, и всё такое.
    Ответ написан
    Комментировать
  • Почему бот в телеграмме не реагирует на код?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    1.ВСЕГДА начинайте с документации, а не со случайных статей в интернете
    2.это весь код? Где в нем запуск бота (именно бота, а не файла с кодом)?
    Ответ написан
    Комментировать
  • Есть ли какие-то сервисы или форумы, куда можно выложить свой код, чтобы его могли оценить и оптимизировать другие люди?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В теории можно было бы и сюда, но хотя тег и есть, но сами модераторы признают, что модерируют его как бог на душу положит - то пропускают вопросы, то удаляют.

    На английском есть специализированный сайт codereview@stackexchange, при наличии языка это идеальный вариант.

    В принципе, есть ещё русскоязычный stackoverflow, где, при их-то трафике, по идее должны любого клиента принимать с распростёртыми объятиями, но модерят его такие же вахтёры как и здесь.

    Самый надёжный способ получить code-review, это завести два аккаунта. С одного задать вопрос, "как сделать то-то", а с другого - запостить код, который это делает. И тут же набегут советчики, рассказать, что в этом коде неправильно.
    Ответ написан
    2 комментария
  • Как догрузить необходимые для парсинга JS элементы с сайта?

    Страница сайта скорее всего генерируется автоматически при помощи JS, сами скрипты тянут данные отсюда, ну а дальше скрипт JS парсит полученный словарь и динамически заполняет блоки нужными полями.

    Частично что выдает результатом такой запрос

    {
      "state":0,
      "data":
        {
          "products":
            [
              {"id":6583968,"root":5214366,"kindId":0,"subjectId":436,"subjectParentId":49,"name":"Спрей","brand":"Ollin Professional","brandId":11981,"siteBrandId":21981,"sale":24,"priceU":85100,"salePriceU":64600,"pics":8,"rating":5,"feedbacks":32767,"colors":[],"sizes":[{"name":"","origName":"0","rank":0,"optionId":23181493}],"diffPrice":false},
              {"id":3861036,"root":3198966,"kindId":0,"subjectId":358,"subjectParentId":49,"name":"Шампунь","brand":"Ollin Professional","brandId":11981,"siteBrandId":21981,"sale":24,"priceU":111400,"salePriceU":84600,"pics":8,"rating":4,"feedbacks":3586,"colors":[],"sizes":[{"name":"","origName":"0","rank":0,"optionId":14625839}],"diffPrice":false},
              {"id":7052045,"root":5547739,"kindId":0,"subjectId":372,"subjectParentId":49,"name":"Сыворотка","brand":"d'Alba","brandId":26057,"siteBrandId":36057,"sale":25,"priceU":370000,"salePriceU":277500,"pics":15,"rating":4,"feedbacks":2175,"colors":[],"sizes":[{"name":"","origName":"0","rank":0,"optionId":24472815}],"diffPrice":false},
              {"id":3860934,"root":3198957,"kindId":0,"subjectId":364,"subjectParentId":49,"name":"Флюид","brand":"Ollin Professional","brandId":11981,"siteBrandId":21981,"sale":24,"priceU":98400,"salePriceU":74700,"pics":8,"rating":5,"feedbacks":6549,"colors":[],"sizes":[{"name":"","origName":"0","rank":0,"optionId":14625737}],"diffPrice":false}
              ]
        }
    }



    Заголовки запроса

    User-Agent: Любой UA браузера
    Accept: */*
    Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate, br
    Origin: https://www.wildberries.ru
    Connection: keep-alive
    Referer: https://www.wildberries.ru/
    Sec-Fetch-Dest: empty
    Sec-Fetch-Mode: cors
    Sec-Fetch-Site: cross-site



    А вообще, вкладка "сеть" инспектора кода, очень полезная вещь. Особенно когда работаешь с парсингом страниц.
    Делаешь GET запрос по приложенной ссылке с указанными заголовками. Получаешь в формате json ответ. Далее просто в циклах перебираешь элементы и берешь нужные тебе данные. Касаемо ссылки часть где передаются id товаров - получение этих id лучше тоже автоматизировать и подмешивать полученный результат в адрес.
    И не забывай, если часто с одного и того же IP-адреса будут лететь запросы в сторону сайта или API, то скорее всего попадешь в бан-лист сайта.
    Ответ написан
    Комментировать
  • Как исключить часть результатов парсинга, если по одному из пунктов парсинга нет данных?

    Keffmen
    @Keffmen
    Изучаю Python , C# , HTML и многое другое
    n4ural, вот ошибка
    product_stock = soup.find_all('div', class_='items-stock')

    Это строка находит пустоту и проверяет в дальнейшем пустоту , если ее исправить то получиться
    product_stock = soup.find_all('span', class_='value')


    и не правильная система перебора !
    Это твой код
    for stock_check in product_stock:
            if stock_check.text != 'Нет в наличии':
                for name in product_names:
                    href.append('https://estel-shop.ru' + name.a['href'])
                    title.append(name.text)
                    print(name.text.strip())
                    print('https://estel-shop.ru' + name.a['href'])
                    for price in product_price:
                        print(price.text)
                        cost.append(price.text)


    что выдает твой код :
    Estel Princess Essex 10/76 Светлый блондин коричнево-фиолетовый (Снежный лотос)
    https://estel-shop.ru/catalog/kraska_dlya_volos_1/5150/
    360
    1 060
    670
    385
    385
    670
    670
    770
    950

    вот и вся проблема !
    Если нужна помощь пиши в Telegram Keffmen
    Ответ написан
    3 комментария