Профиль пользователя заблокирован сроком с 12 апреля 2022 г. и навсегда по причине: спам
Ответы пользователя по тегу Python
  • Как передать несколько cookies?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Так можешь попробовать:
    response = web.Response()
    response.set_cookie('name_1', 'value_1')
    response.set_cookie('name_2', 'value_2')
    return response
    Ответ написан
  • Как сделать в телеботе в клавиатуре?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    После нажатия на кнопку, вызывать другую клавиатуру так-же, как ты вызывал первую.
    Ответ написан
    2 комментария
  • Pep8 как правильно переносить строку в таком варианте?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    В первую очередь это аргумент и в pep8 все довольно ясно прописано:
    The closing brace/bracket/parenthesis on multiline constructs may either line up under the first non-whitespace character of the last line of list, as in:
    or it may be lined up under the first character of the line that starts the multiline construct, as in:

    В документации Python используется первый вариант.
    Но и второй вариант более чем допустим:
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS Users
        (ID INTEGER NOT NULL PRIMARY KEY,
        Text TEXT, Configuration Text)
    """)

    P.S. Лично мне гораздо удобнее избегать в аргументах формирование строк, так что я всегда делаю так:
    query = (
        'CREATE TABLE IF NOT EXISTS Users('
        'ID INTEGER NOT NULL PRIMARY KEY,'
        'Text TEXT,'
        'Configuration Text)'
    )
    cursor.execute(query)

    В целом довольно часто встречаю подобный подход.
    Ответ написан
    2 комментария
  • Почему не отправляется requests.post на сайт (ssl)?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Сайт проверяет куки. Создай сессию, а затем делай нужные тебе запросы:
    import requests
    
    session = requests.Session()
    session.headers.update({
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
    })
    session.get('https://www.pobeda.aero/information/booking/search_cheap_tickets/', verify=False)
    
    data = {'Culture': 'ru-RU', 'Currency': 'RUB', 'Origin': 'VKO', 'RequestType': 'MoreOffersHome'}
    response = session.post('https://www.pobeda.aero/umbraco/api/CustomTravelOffersApi/GetCustomTravelOffers', json=data, verify=False)
    
    response.json()

    oupt
    [{'departure': 'Москва',
      'arrivals': [{'image': '//static.pobeda.aero/media/1057/cheby.jpg',
        'name': 'Чебоксары',
        'currency': '₽',
        'price': '999',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=CSY&departure1=2020-10-13&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 0,
        'isHighlighted': False,
        'customTitle': 'Чебоксары'},
       {'image': '//static.pobeda.aero/media/1002/vladikavkaz1.jpg',
        'name': 'Владикавказ',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=OGZ&departure1=2020-09-09&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 9,
        'isHighlighted': False,
        'customTitle': 'Владикавказ'},
       {'image': '//static.pobeda.aero/media/1006/izhevsk1.jpg',
        'name': 'Ижевск',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=IJK&departure1=2020-09-14&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 19,
        'isHighlighted': False,
        'customTitle': 'Ижевск'},
       {'image': '//static.pobeda.aero/media/1007/kazan1.jpg',
        'name': 'Казань',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KZN&departure1=2020-09-08&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 10,
        'isHighlighted': False,
        'customTitle': 'Казань'},
       {'image': '//static.pobeda.aero/media/1008/kaliningrad1.jpg',
        'name': 'Калининград',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KGD&departure1=2020-08-24&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 18,
        'isHighlighted': False,
        'customTitle': 'Калининград'},
       {'image': '//static.pobeda.aero/media/1061/kirov.jpg',
        'name': 'Киров',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KVX&departure1=2020-10-05&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 16,
        'isHighlighted': False,
        'customTitle': 'Киров'},
       {'image': '//static.pobeda.aero/media/1010/krasnodar1.jpg',
        'name': 'Краснодар',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KRR&departure1=2020-08-24&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 15,
        'isHighlighted': False,
        'customTitle': 'Краснодар'},
       {'image': '//static.pobeda.aero/media/1001/kurgan1.jpg',
        'name': 'Курган',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KRO&departure1=2020-10-05&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 17,
        'isHighlighted': False,
        'customTitle': 'Курган'},
       {'image': '//static.pobeda.aero/media/1050/makhachkala.jpg',
        'name': 'Махачкала',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=MCX&departure1=2020-08-25&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 14,
        'isHighlighted': False,
        'customTitle': 'Махачкала'},
       {'image': '//static.pobeda.aero/media/1011/minvody1.jpg',
        'name': 'Минеральные Воды',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=MRV&departure1=2020-10-07&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 4,
        'isHighlighted': False,
        'customTitle': 'Минеральные Воды'},
       {'image': '//static.pobeda.aero/media/1012/murmansk1.jpg',
        'name': 'Мурманск',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=MMK&departure1=2020-09-19&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 13,
        'isHighlighted': False,
        'customTitle': 'Мурманск'},
       {'image': '//static.pobeda.aero/media/1053/nab_chelny.jpg',
        'name': 'Набережные Челны',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=NBC&departure1=2020-09-18&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 5,
        'isHighlighted': False,
        'customTitle': 'Набережные Челны'},
       {'image': '//static.pobeda.aero/media/1064/nazran.jpg',
        'name': 'Назрань (Магас)',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=IGT&departure1=2020-09-26&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 11,
        'isHighlighted': False,
        'customTitle': 'Назрань (Магас)'},
       {'image': '//static.pobeda.aero/media/1039/perm.jpg',
        'name': 'Пермь',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=PEE&departure1=2020-10-08&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 8,
        'isHighlighted': False,
        'customTitle': 'Пермь'},
       {'image': '//static.pobeda.aero/media/1013/petrozavodsk.jpg',
        'name': 'Петрозаводск',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=PES&departure1=2020-09-21&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 12,
        'isHighlighted': False,
        'customTitle': 'Петрозаводск'},
       {'image': '//static.pobeda.aero/media/1025/stavropol.jpg',
        'name': 'Ставрополь',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=STW&departure1=2020-09-03&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 7,
        'isHighlighted': False,
        'customTitle': 'Ставрополь'},
       {'image': '//static.pobeda.aero/media/1024/ufa.jpg',
        'name': 'Уфа',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=UFA&departure1=2020-09-03&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 6,
        'isHighlighted': False,
        'customTitle': 'Уфа'},
       {'image': '//static.pobeda.aero/media/1014/anapa.png',
        'name': 'Анапа',
        'currency': '₽',
        'price': '1799',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=AAQ&departure1=2020-08-26&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 20,
        'isHighlighted': False,
        'customTitle': 'Анапа'},
       {'image': '//static.pobeda.aero/media/1013/nalchik1a.jpg',
        'name': 'Нальчик',
        'currency': '₽',
        'price': '1799',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=NAL&departure1=2020-09-17&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 21,
        'isHighlighted': False,
        'customTitle': 'Нальчик'},
       {'image': '//static.pobeda.aero/media/1016/sochi1.jpg',
        'name': 'Сочи',
        'currency': '₽',
        'price': '1800',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=AER&departure1=2020-08-24&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 22,
        'isHighlighted': False,
        'customTitle': 'Сочи'}]}]
    Ответ написан
    2 комментария
  • Где в сети можно хранить код и обращаться к нему из проекта на локальном ПК?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    100% безопасности не существует нигде в принципе. И я не об IT, а о всём мире в целом.

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

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    требует аргументы указывать в квадратных и круглых скобках

    Они требуют любой итерируемый объект, а не квадратные, или круглые скобки, что бы из него составить список, или кортеж. Так можно list((1, 2, 3)) и так тоже list('abc').
    Ответ написан
    Комментировать
  • Как обьденить текст в 1 сообщение?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    text = ''
    for i in range(len(t)):
        text = text + (
            f'Найдено в AVITO\n\n'
            f'<b>Объявление</b> <code>{str(i+1)}</code>\n\n'
            f'<b>Имя: </b><code>{name}</code>\n\n'
            f'<b>Название: </b><code>{t[i].getText()}</code>\n\n'
            f'<b>Адрес:</b><code>{p[i].select("span")[0].getText()}</code>\n\n'
            f'<b>Дата Публикации: </b><code>{p[i].select("span")[1].getText()}</code>'
        )
    
    bot.send_message(message.chat.id, text, parse_mode='html')
    Ответ написан
  • GET запрос работает в POSTman, но возвращает 403 в python requests?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Ты не все заголовки передал. Postman по-умолчанию генерирует некоторые заголовки самостоятельно, вот так подключается нормально:
    headers = {
        'Host': 'ovga.mos.ru',
        'User-Agent': 'Magic User-Agent v999.26 Windows PRO 11',
        'Accept': '*/*',
        'Accept-Encoding': 'gzip, deflate, br',
        'Connection': 'keep-alive',
        'X-Requested-With': 'XMLHttpRequest'
    }
    url = 'http://ovga.mos.ru:8080/_ajax/pass/list?search={"grz":"К239ММ159"}&sort=validitydate&order=desc'
    response = requests.get(url, headers=headers)

    <Response [200]>
    Ответ написан
    Комментировать
  • Как использовать команду только один раз VK Api python?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    В БД создай поле, куда сохраняй промо-код, при активации делай проверку есть ли промо-код у данного пользователя, если есть - отклоняешь, если нет - принимаешь и добавляешь промо-код в поле.
    Ответ написан
    Комментировать
  • В чем смысл фреймворка Scrapy?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Автоматизация процесса парсинга. Вместо того, что бы самому писать логику многопоточности, перехода по страницам, обработку/хранение данных и прочее, можно использовать Scrapy, который деляет это все из коробки.
    Ответ написан
    Комментировать
  • Как почистить html код?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Регулярным выражением, как вариант:
    In [1]: foo = 'a:3:{s:6:"update";i:1591804805;s:8:"encoding";s:12:"utf-8";s:4:"urls";a:4:{i:991;a:2:{i:0;s:1:"/";i
       ...: :1;s:66:"<a href="https://site1.com">фильмы онлайн</a>";}i:1113;a:2:{i:0;s:1:"/";i:1;s:108:"Смотреть <a hr
       ...: ef="https://site2.net">кино</a> онлайн без регистрации";}i:1793;a:2:{i:0;s:1:"/";i:1;s:149:"Советую фильмы
       ...:  на сайте <a href="http://site3.online">site3.online</a>";}i:1822;a:2:{i:0;s:1:"/";i:1;s:73:"<a href="http
       ...: s://www.site4.org/">ФИЛЬМЫ - ЛУЧШЕЕ</a> ";}}}'
    
    In [2]: import re
    
    In [3]: a_link_pattern = re.compile(r'\<a\s.+?\<\/a\>')
    
    In [4]: for elem in a_link_pattern.findall(foo):
       ...:     print(elem)
       ...:
    <a href="https://site1.com">фильмы онлайн</a>
    <a href="https://site2.net">кино</a>
    <a href="http://site3.online">site3.online</a>
    <a href="https://www.site4.org/">ФИЛЬМЫ - ЛУЧШЕЕ</a>
    Ответ написан
    1 комментарий
  • Как хранить файлы документы в SQlite?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    В SQLite ты не можешь хранить файлы, в лучшем случае использовать её для индексирования файлов, если их будет слишком много. А вообще научись гуглить - это очень просто: пишешь в гугле "python file share bot telegram" и по первой ссылке сразу репозиторий ровно с тем, что ты хочешь, прям 1 в 1, вот оно.
    Ответ написан
  • Как нажать правой кнопкой мыши с selenium?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Никак. Все данные в мессенджер приходят через вебсокет, на странице ничего не хранится, с буфером обмена Selenium не работает.
    Ответ написан
    Комментировать
  • Как мне исправить ошибку too many values to unpack (expected 2)?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    lan1 = Eng, lan2 = Rus
    Ты этому где научился?
    Или так:
    lan1 = Eng
    lan2 = Rus

    Или так:
    lan1, lan2 = Rus, Eng
    Ответ написан
    1 комментарий
  • Как заставить Telegram бота отправлять сообщения другому боту?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Боты не могут взаимодействовать между собой, потому что: что-бы бот получил возможность писать тебе, нужно дать ему разрешение (самое первое нажатие кнопки start, когда заходишь в диалог с ботом). То есть нужно, что бы один бот послал второму боту команду start, но он не может это сделать, потому что второй бот "не дал ему разрешение".
    Возможно есть другие способы решения задачи, если ты напишешь саму задачу, а не свою идею.
    Ответ написан
    4 комментария
  • Как спарсить атрибут target=_"_blank"> спомошью BeautifulSoup в Python?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    soup.find_all('a', class_='name')[1:]
    Тут уже возвращаются элементы целиком, со всеми атрибутами и текстом:
    <a class="name" href="https://vk.com/stusha45" target="_blank">Стюша Сергеева</a>
    <a class="name" href="https://vk.com/id209266081" target="_blank">Юлия Сухова</a>

    Соответственно тебе не нужно повторно искать их, просто взять нужные значения из каждого элемента:
    for item in items:
        item_data = {
            'title': item.get('href'),
            'name': item.text
        }
        print(item_data)

    {'title': 'https://vk.com/stusha45', 'name': 'Стюша Сергеева'}
    {'title': 'https://vk.com/id209266081', 'name': 'Юлия Сухова'}
    Ответ написан
  • В чем проблема цикла и библиотеки time?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    У Tkinter есть некий аналог sleep - after, по истечению заданного времени он вызывает нужную функцию.
    Но в твоем случае это бесполезно, потому что ты сначала выполняешь создание объекта, а только затем запускаешь само окно. Ты можешь сделать так:
    for r in range(200, 100, -5):
        print(r)
        canvas.create_circle(725, 500, r, fill="blue", outline="red", width=4)
    
    root.wm_title("Circles and Arcs")
    print(True)
    root.mainloop()

    Как видишь mainloop не запущен, но выполнение функции canvas.create_circle все равно произошло и только потом в консоле отобразится True и прозойдет запуск mainloop
    Хочешь отрисовывать динамично? Тогда как вариант запускать отрисовку можно в отдельном потоке, а уже там хоть time.sleep пихать, вот пример на твоей задаче:
    import tkinter as tk
    from threading import Thread
    from time import sleep
    
    
    class CreateCircle(tk.Tk):
        def __init__(self, width=1000, height=1000, borderwidth=0, highlightthickness=0, bg='black'):
            tk.Tk.__init__(self)
            self.canvas = tk.Canvas(
                self, width=width, height=height, borderwidth=borderwidth,
                highlightthickness=highlightthickness, bg=bg
            )
            self.create_circle_thread = Thread(target=self.create_circle)
            self.create_circle_thread.start()
            self.canvas.pack()
            self.run()
    
        def create_circle(self, x=725, y=500, fill='blue', outline='red', width=4):
            for r in range(200, 100, -5):
                self.__create_circle(x, y, r, fill=fill, outline=outline, width=width)
                sleep(0.2)
        
        def __create_circle(self, x, y, r, **kwargs):
            return self.canvas.create_oval(x-r, y-r, x+r, y+r, **kwargs)
    
        def run(self):
            self.mainloop()
    
    
    cc = CreateCircle()
    Ответ написан
  • Как получить посты с чужих телеграмм каналов?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Вам нужна библиотека Telethon, гайдов по тому, как с ней взаимодействовать и получать посты из каналов/групп полным-полно. Естественно для этого нужно, что бы аккунт, который вы будете использовать, был в этих группах/каналах.
    Ответ написан
    1 комментарий
  • Как понять, откуда берется переменная в post запросе?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Перейди во вкладку Initiator и смотри какие JS функции отрабатывают как для самого метода login, так и перед ним. Вероятнее всего в какой то момент сервер передает на клиент ключ, который используются для логина, но при этом нигде не сохраняется.
    Ответ написан
    Комментировать
  • Как записать спарсиный XML файл в txt, в Python?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    with open('filename.txt', 'w') as fo:
        fo.write(your_xml)
    Ответ написан