Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (4)

Наибольший вклад в теги

Все теги (44)

Лучшие ответы пользователя

Все ответы (222)
  • Как вывести код с браузерным расширением?

    MinTnt
    @MinTnt
    Всё же можно использовать requests, учитывая что большинство появляющихся сообщений появляются в XHR, позже добавлю примерную инструкцию.

    1) Сначала открываем код элемента, заходим в Network, и в XHR, там в основном отображаются подгружаемый текст.
    картинка
    Kw2GU.png

    2) Далее можно нажать Preview или Response для ускорения поиска нужного скрипта
    картинка
    Kw2La.png

    3) Когда нашли нужный заходим в Headers и получаем метод(get/post) а так же url для запроса
    картинка
    Kw2Pw.png

    4) Копируем все (кроме того что идёт с ":" в начале) это будет нашим headers
    картинка
    Kw2YK.png

    Перед использованием так же нужно будет отформатировать под словарь, по типу
    #accept: */*
    head = {'accept': '*/*', ... }
    5) Если это Post запрос, то так же достаём параметры из Payload
    6) Повторяем запрос, со взятым методом и данными requests.get(url, headers = head)
    или же если пост requests.post(url, headers = head, data = Payload)
    Ответ написан
    Комментировать
  • Почему сайт не видит form data?

    MinTnt
    @MinTnt
    Как видно ещё в самих headers запрос не правильно построен с data.
    boundary=----WebKitFormBoundaryWAubJkiU77iGCuEI'
    Значит в запросе присутствует WebKitFormBoundary, (в принципе в гугле есть решения)

    И полная data выглядит вот так:
    ------WebKitFormBoundarywbDAEub66BAoxeVG
    Content-Disposition: form-data; name="url"
    
    https://www.tiktok.com/@lisaandlena/video/6926975884846992645
    ------WebKitFormBoundarywbDAEub66BAoxeVG--


    Решение:
    import requests
    from requests_toolbelt import MultipartEncoder
    
    #Задаём headers в начале, так как в следующих двух запросах они идентичны
    head = {'User-Agent': 'Mozilla/5.0', 'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundary7CwxCXhJ7UIYYnji', 'Cookie': 'PHPSESSID=sf89oogdslb85de7ec42j4mgl3; current_language=ru'}
    #Этот запрос ниже, отправляется для того, чтоб можно сказать дать жизнь токену, на какое-то время
    requests.post('https://snaptik.app/check_token.php', headers = head,  data = MultipartEncoder(fields={}, boundary = '----WebKitFormBoundary7CwxCXhJ7UIYYnji'))
    
    #А это уже сама инфа, что подгружается скриптом. Обычно я для просмотра подобной инфы использую open('log.html', 'w', encoding='utf-8').write(post.text), чтоб в созданом файле посмотреть что мне пригодиться
    dat = MultipartEncoder(fields={'url': 'https://www.tiktok.com/@lisaandlena/video/6926975884846992645'}, boundary = '----WebKitFormBoundary7CwxCXhJ7UIYYnji')
    post = requests.post('https://snaptik.app/action_2021.php', headers = head, data = dat)
    Ответ написан
  • Скрипт для генерации уникальных изображений?

    MinTnt
    @MinTnt
    Думаю тут и PIL сгодится. Сначала задав код для рисования по пиксельно нужного изображения. А дальше создать список с разными цветами, с которого потом через random выбирать нужный цвет.

    Т.е. создать по функции для рисования определёных одноцветных мест рисунка. А далее выбирая через random случайный код света, передавать его функции, для отрисовки.

    Update: я пока лишь так, быстро просмотрел PIL, написал пусть и не до конца идеальный, но для начала сойдёт - мини-код. Он берёт из папки уже существующее входное изображение, а на выходе изменённое со случайными цветами.
    from PIL import Image, ImageDraw 
    from random import randint
    import time
    
    image = Image.open('enter-image.png')
    pix = image.load()
    width = image.size[0]
    height = image.size[1]
    draw = ImageDraw.Draw(image)
    
    pixel_id = []
    print(f'Через 3 секунды начнётся анализ картинки. Размеры {width}x{height}')
    time.sleep(3)
    start_time = time.time()
    
    for x in range(width):
    	for y in range(height):
    		print(x, y)
    		if not pix[x,y] in [i[0] for i in pixel_id]:
    			pixel_id.append([pix[x,y], []])
    		pixel_id[[i[0] for i in pixel_id].index(pix[x,y])][1].append((x,y))
    
    for a in pixel_id:
    	color = (randint(0, 255), randint(0, 255) , randint(0, 255))
    	for draw_zone in a[1]:
    		draw.point(draw_zone, color)
    
    print('Проработка изменённой картинки завершена. Начинается сохранение.')
    image.save("output-image.png")
    print(f'Сохранение завершено за {time.time()-start_time}.')

    Если же нужно чтоб какие-то цвета не брало в счёт, можно приделать такую проверку.
    if pix[x,y] not in [(0, 0, 0, 255), (255,255,255, 255)]:
    			if not pix[x,y] in [i[0] for i in pixel_id]:
    				pixel_id.append([pix[x,y], []])
    			pixel_id[[i[0] for i in pixel_id].index(pix[x,y])][1].append((x,y))
    Ответ написан
    7 комментариев
  • Как вывести на экран максимальное из имеющихся чисел?

    MinTnt
    @MinTnt
    Например, для тройки 2,3,-3 программа должна выводить число 2.

    print([x.count(max(x)) for x in [[ads(x) for x in [int(input('Введите первое число: ')), int(input('Введите второе число: ')), int(input('Введите третье число: '))]]]][0])
    Ответ написан
    Комментировать
  • В чем ошибка моего решения?

    MinTnt
    @MinTnt
    with open('text.txt', 'r') as f:
    	import re
    	print(max([len(i[0]) for i in re.findall('((XYZ)+(X|XY)?)', f.read())]))

    Это с учётом условия
    "последний фрагмент может быть неполным"

    т.е. я понял он может быть просто как 'XY, 'X'. По итогу вышло, что максимальная длина цепочки 13. Значит она будет иметь примерный вид как "XYZXYZXYZXYZX".

    Только мне чуть кажется, что я точно что-то не правильно задал в условии для поиска, ну.. если что призову всезнающего.

    Update: Хах, я ток ща перечитывая условие, заметил заметку "правильный ответ 13"
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (10)