• Как посмотреть время последней записи в Redis?

    Dunaevlad
    @Dunaevlad Автор вопроса
    А, кек, оно так и называется "lastsave"

    r = redis.Redis(host="localhost", port=6379, db=0)
    r.set("foo", raw)
    print(r.lastsave()
    Ответ написан
    Комментировать
  • Как вытащить значение из словаря который в списке?

    Dunaevlad
    @Dunaevlad
    print(user["username"] for user in data["new_chat_members"])

    где data, переменная, которая содержит вышеуказанные данные.
    Ответ написан
  • Почему не сохраняется скриншот PyAutoGui?

    Dunaevlad
    @Dunaevlad
    import pyautogui
    
    im1 = pyautogui.screenshot("screen.png", region=(0, 0, 300, 400))
    im1.save()


    Кек, сохранять не пробовали?
    Ответ написан
  • Пакеты в Go, почему их не видно?

    Dunaevlad
    @Dunaevlad
    Идем на https://go.dev/blog/using-go-modules и читаем документацию

    Делаем следующее:

    1. Открываем проект
    2. Прописываем go mod init main(название вашего проекта/папки)
    3. Создаем файл main.go
    4. Вставляем код
    5. Прописываем в терминале go mod tidy
    Ответ написан
  • Как вытащить нужные данные из файла?

    Dunaevlad
    @Dunaevlad
    У тебя формат данных, является ошибочным, не может быть такого, как ты написал.
    Тебе надо сделать его в:
    ["created_at", "2022-08-11T14:01:46.886Z", "city","Lawton","country","US",]

    и потом:
    def convert(data):
        it = iter(data)
        res_dct = dict(zip(it, it))
        return res_dct
    
    print(convert(data["city"],data["country"]))
    Ответ написан
    6 комментариев
  • Почему закрывается сокет содинение сразу после получение ответа?

    Dunaevlad
    @Dunaevlad Автор вопроса
    async def command(client, data, status=None):
        await client.send(json.dumps(data))
        while True:
            try:
                receive = await client.recv()
                code = json.loads(receive)["status"][0]
                if code == status:
                    return receive
            except (KeyError, ValueError) as err:
                print(f"[error from command()] => {err}")
            finally:
                print(f"[websocket message] =>", receive)


    Разобрался, надо строку await client.send(json.dumps(data)) вынести из While
    Ответ написан
    Комментировать
  • Как провести итерацию функций в map?

    Dunaevlad
    @Dunaevlad Автор вопроса
    def := regpFactoryMap[key]
    	for i := 0; i < len(def); i++ {
    		def[i](bet, shortName)
    	}
    Ответ написан
    Комментировать
  • Wireshark TLS 1.2 / TCP decrypt?

    Dunaevlad
    @Dunaevlad
    Если речь идет о алгоритмах шифров в контексте транспортного протокола TLS/SSL, то подразумевается обычно Cipher Suite.

    Cipher Suite - комбинация шифров (шифровальная система) - представляет собой комбинацию алгоритмов, используемых для согласования параметров безопасности во время установления связи SSL / TLS.


    Более подробное описание, вы можете найти тут .
    Ответ написан
    6 комментариев
  • Как поменять ответ сайта в запросе?

    Dunaevlad
    @Dunaevlad
    def e_way():
        """Get data"""
        import httpx
    
        uri = "https://eway.elevel.ru/api/goods_new/?category_id=0&own=6101"
        client = httpx.Client()
    
        r = client.post(
            url=uri,
            headers={
                "Host": "eway.elevel.ru",
                "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0",
                "Accept": "application/json, text/javascript, */*; q=0.01",
                "Accept-Language": "en-US,en;q=0.5",
                "Accept-Encoding": "gzip, deflate",
                "Content-Type": "pplication/x-www-form-urlencoded; charset=UTF-8",
                "X-Request-ID": "c6bd4e99f21eea69cb291511473bf936",
                "X-Requested-With": "XMLHttpRequest",
                "Origin": "https://eway.elevel.ru",
                "Connection": "keep-alive",
                "Referer": "https://eway.elevel.ru/goods/0/",
                "Cookie": "basket=7023202; contract=6101; user_uuid=687b14a6-e6aa-4661-824f-1c058c149b2e; _ym_uid=1654725714994683832; _ym_d=1654725714; _ym_isad=1",
                "Sec-Fetch-Dest": "empty",
                "Sec-Fetch-Dest": "document",
                "Sec-Fetch-Mode": "navigate",
                "Sec-Fetch-Site": "same-origin",
                "Sec-Fetch-User": "?1",
            },
            # add necessary params if need
            params={
                "draw": "1",
                "columns[0][data]": "0",
                "columns[0][name]": "articul",
                "columns[0][searchable]": "true",
                "columns[0][orderable]": "true",
                "columns[0][search][value]": "",
                "columns[0][search][regex]": "false",
                "columns[1][data]": "1",
                "columns[1][name]": "photo",
                "columns[1][searchable]": "true",
                "columns[1][orderable]": "false",
                "columns[1][search][value]": "",
                "columns[1][search][regex]": "false",
                "columns[2][data]": "2",
                "columns[2][name]": "certificate",
                "columns[2][searchable]": "true",
                "columns[2][orderable]": "false",
                "columns[2][search][value]": "",
                "columns[2][search][regex]": "false",
                "columns[3][data]": "3",
                "columns[3][name]": "configurator",
                "columns[3][searchable]": "true",
                "columns[3][orderable]": "false",
                "columns[3][search][value]": "",
                "columns[3][search][regex]": "false",
                "columns[4][data]": "4",
                "columns[4][name]": "name",
                "columns[4][searchable]": "true",
                "columns[4][orderable]": "true",
                "columns[4][search][value]": "",
                "columns[4][search][regex]": "false",
                "columns[5][data]": "5",
                "columns[5][name]": "category",
                "columns[5][searchable]": "true",
                "columns[5][orderable]": "false",
                "columns[5][search][value]": "",
                "columns[5][search][regex]": "false",
                "columns[6][data]": "6",
                "columns[6][name]": "type",
                "columns[6][searchable]": "true",
                "columns[6][orderable]": "true",
                "columns[6][search][value]": "",
                "columns[6][search][regex]": "false",
                "columns[7][data]": "7",
                "columns[7][name]": "producer",
                "columns[7][searchable]": "true",
                "columns[7][orderable]": "true",
                "columns[7][search][value]": "",
                "columns[7][search][regex]": "false",
                "columns[8][data]": "8",
                "columns[8][name]": "storage",
                "columns[8][searchable]": "true",
                "columns[8][orderable]": "true",
                "columns[8][search][value]": "",
                "columns[8][search][regex]": "false",
                "columns[9][data]": "9",
                "columns[9][name]": "pack",
                "columns[9][searchable]": "true",
                "columns[9][orderable]": "true",
                "columns[9][search][value]": "",
                "columns[9][search][regex]": "false",
                "columns[10][data]": "10",
                "columns[10][name]": "step",
                "columns[10][searchable]": "true",
                "columns[10][orderable]": "true",
                "columns[10][search][value]": "",
                "columns[10][search][regex]": "false",
                "columns[11][data]": "11",
                "columns[11][name]": "price",
                "columns[11][searchable]": "true",
                "columns[11][orderable]": "true",
                "columns[11][search][value]": "",
                "columns[11][search][regex]": "false",
                "columns[12][data]": "12",
                "columns[12][name]": "tariff_price",
                "columns[12][searchable]": "true",
                "columns[12][orderable]": "true",
                "columns[12][search][value]": "",
                "columns[12][search][regex]": "false",
                "columns[13][data]": "13",
                "columns[13][name]": "special_offers",
                "columns[13][searchable]": "true",
                "columns[13][orderable]": "true",
                "columns[13][search][value]": "",
                "columns[13][search][regex]": "false",
                "columns[14][data]": "14",
                "columns[14][name]": "cart",
                "columns[14][searchable]": "true",
                "columns[14][orderable]": "true",
                "columns[14][search][value]": "",
                "columns[14][search][regex]": "false",
                "order[0][column]": "14",
                "order[0][dir]": "desc",
                "start": "100",
                "length": "100",
                "search[value]": "",
                "search[regex]": "false",
                "sentens": "",
            },
        )
        print("[*Response ]\n", r.json())
    
    
    if __name__ == "__main__":
        e_way()
    Ответ написан
    Комментировать
  • Как авторизоваться в Facebook через cookies?

    Dunaevlad
    @Dunaevlad
    def face_token():
        """Get TOKEN"""
        from bs4 import BeautifulSoup
        import httpx
        import ssl
        
        uri = "https://www.facebook.com/adsmanager/manage"
        ctx = ssl.create_default_context()
        client = httpx.Client(verify=ctx)
        r = client.get(
            url=uri,
            headers={
                "Host": "www.facebook.com",
                "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0",
                "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
                "Accept-Language": "en-US,en;q=0.5",
                "Accept-Encoding": "gzip, deflate",
                "Referer": "https://www.facebook.com/index.php?next=https%3A%2F%2Fwww.facebook.com%2Fadsmanager%2Fmanage",
                "Connection": "keep-alive",
                "Cookie": "cookies_there",  # use the cookies that you receive after logging into your account
                "Upgrade-Insecure-Requests": "1",
                "Sec-Fetch-Dest": "document",
                "Sec-Fetch-Mode": "navigate",
                "Sec-Fetch-Site": "same-origin",
                "Sec-Fetch-User": "?1",
                "TE": "trailers",
            },
        )
        print("[* Response headers]\n", r.headers)
        # From headers you can get => privacy_mutation_token(see x-fb-debug) =
        # "eyJ0eXBlIjowLCJjcmVhdGlvbl90aW1lIjoxNjU0NzE4MTg0LCJjYWxsc2l0ZV9pZCI6MzgxMjI5MDc5NTc1OTQ2fQ=="
        # use it for POST https://www.facebook.com/login/?privacy_mutation_token=
        # eyJ0eXBlIjowLCJjcmVhdGlvbl90aW1lIjoxNjU0NzE4MTg0LCJjYWxsc2l0ZV9pZCI6MzgxMjI5MDc5NTc1OTQ2fQ==
    
        body = BeautifulSoup(r.text, "lxml")
        print("[* All JS scripts]")
        # find all scripts one of them will be "accessToken"
        for script in body.find_all("script"):
            print(script)
    
    
    if __name__ == "__main__":
        face_token()
    Ответ написан
    8 комментариев
  • Как разделить элементы списка Python, символов в которых больше, чем 4?

    Dunaevlad
    @Dunaevlad
    x = [1605, 9550, 12556430]
    for n in x:
        s = str(n)
        print(n/2) if len(s) > 4 else ""
    Ответ написан
    Комментировать
  • Как получить доступ к папке /run/user/1000/doc?

    Dunaevlad
    @Dunaevlad Автор вопроса
    1. Откртыть /etc/fuse.conf файл для редактирования
    2. Расскоментировать строку #user_allow_other to save it as user_allow_other.
    3. Сохранить и закрыть файл.
    4. в терминале прописать -> fusermount -zu /run/user/1000/doc
    5. в терминале прописать ->/usr/lib/gvfs/gvfsd-fuse -o allow_root /run/user/1000/doc
    Готово.
    Ответ написан
    Комментировать
  • Как добавить в список ближайшие элементы?

    Dunaevlad
    @Dunaevlad Автор вопроса
    x = []
    for i in range(len(n)):
        if type(n[i]) is list:
            x.append(n[i])
            mark = len(x) - 1
        elif type(n[i]) is int:
            x[mark].append(n[i])
    Ответ написан
  • Как сделать, чтоб введенные пользователем данные записывались в список?

    Dunaevlad
    @Dunaevlad
    def user(**kwargs):
        return [kwargs]
    
    
    if __name__ == "__main__":
        data = user(n1="Text1", n2="Text2", n3="Text3")
        print(data)
    Ответ написан
    1 комментарий
  • Как парсить номера телефонов olx?

    Dunaevlad
    @Dunaevlad
    import requests
    
    headers = {
        'Accept':'*/*',
        'Host': 'www.olx.ua',
        'Sec-Fetch-Dest': 'empty',
        'Sec-Fetch-Mode    ': 'cors',
        'Sec-Fetch-Site': 'same-origin',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0', 
        'X-Platform-Type': 'mobile-html5',
        'Authorization': 'Bearer d1010d86244a2895e25e47e10d696b46290e2a92',
    }
    
    
    print(requests.get(
        'https://www.olx.ua/api/v1/offers/719974471/limited-phones/',
        headers=headers,
        # cookies=cookie
    ).text)
    Ответ написан
    1 комментарий
  • Парсинг номеров olx?

    Dunaevlad
    @Dunaevlad
    Как я получаю информацию:

    import requests
    
    headers = {
        'Accept':'*/*',
        'Host': 'www.olx.ua',
        'Sec-Fetch-Dest': 'empty',
        'Sec-Fetch-Mode    ': 'cors',
        'Sec-Fetch-Site': 'same-origin',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0', 
        'X-Platform-Type': 'mobile-html5',
        'Authorization': 'Bearer d1010d86244a2895e25e47e10d696b46290e2a92',
    }
    
    
    print(requests.get(
        'https://www.olx.ua/api/v1/offers/719974471/limited-phones/',
        headers=headers,
        # cookies=cookie
    ).text)
    Ответ написан
    Комментировать
  • Как поменять кодировку в парсинге?

    Dunaevlad
    @Dunaevlad
    Вы не указали переменную,
    full_page = requests.get(google_dz, headers=headers)

    вместо google_dz, поставьте переменную pastebin
    Ответ написан
    Комментировать
  • Как правильно продумать архетектуру бота?

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

    Dunaevlad
    @Dunaevlad
    @bot.message_handler(content_types=['text'])
    def get_text_messages(message):
        if message.text == 'Мда'.lower():
            bot.send_video(chat_id=update.message.chat_id, 
                           video=open('output.mp4', 'rb'), supports_streaming=True)
    Ответ написан
    Комментировать
  • Как убрать браузером Chrome управляет автоматизированное тестовое ПО?

    Dunaevlad
    @Dunaevlad
    Мой Вам совет, используйте библиотеку dryscrape, вы даже браузер не увидите))
    Ответ написан
    Комментировать