Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
0 / 0 / 0
Регистрация: 18.04.2020
Сообщений: 13

Как достать из json файла рандомный трек?

13.03.2023, 23:41. Показов 550. Ответов 1
Метки нет (Все метки)

Всем привет!
Я запарсил сайт яндекс музыки и закинул ссылки на треки в json файл
Мне нужно чтобы по нажатию кнопки бот выдавал рандомную ссылку на трек трек из json файла
Как это сделать, кто - нибудь может попмочь?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
async def get_chart_track(message: types.Message):
    headers = {
 
    }
 
    url = 'https://music.yandex.ru/users/music-blog/playlists/1104'
    r = requests.get(url)
    soup = BeautifulSoup(r.text, "lxml")
    trakc_link = soup.find_all("a", class_='d-track__title deco-link deco-link_stronger')
 
    track_dict = {}
    for trakc in trakc_link:
        # url = soup.find("a",class_='d-track__title deco-link deco-link_stronger')
        track_url = f'https://music.yandex.ru/{trakc.get("href")}'
        track_id = track_url.split("/")[-1]
        track_dict[track_id] = {
            'track_url': track_url
        }
    with open("track_dict.json", "w") as file:
        json.dump(track_dict, file, indent=4, ensure_ascii=False)
    await message.answer(choice(track_url))
 
 
 
 
async def check_new_track(message: types.Message):
    with open("track_dict.json") as file:
        track_dict = json.load(file)
 
        headers = {
 
        }
 
    url = 'https://music.yandex.ru/users/music-blog/playlists/1104'
    r = requests.get(url)
    soup = BeautifulSoup(r.text, "lxml")
    trakc_link = soup.find_all("a", class_='d-track__title deco-link deco-link_stronger')
 
    for trakc in trakc_link:
        track_url = f'https://music.yandex.ru/{trakc.get("href")}'
        track_id = track_url.split("/")[-1]
 
        if track_id in track_dict:
            continue
        else:
            track_url = f'https://music.yandex.ru/{trakc.get("href")}'
            track_id = track_url.split("/")[-1]
 
            track_dict[track_id] = {
                'track_url': track_url
            }
 
 
 
 
 
 
def main():
    check_new_track()
 
 
if __name__ == '__main__':
    main()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2023, 23:41
Ответы с готовыми решениями:

Как сделать рандомный трек на сцене?
Начинающий, делаю игру в которой при заходе на сцену должен включаться случайный трек, помогите пожалуйста, заранее спасибо

Как достать из json
Начал недавно работать с php и json и столкнулся с проблемой Раньше вывод json я доставал через $json =...

Как достать массив из JSON?
void MainWindow::save() { QJsonArray arr; for (int i = 0; i < ui->treeWidget->topLevelItemCount(); i++) { ...

1
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
13.03.2023, 23:48
https://docs.python.org/3/libr... dom.choice
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2023, 23:48

Как достать html_instructions с помощью json.net?
{ "status": "OK", "geocoded_waypoints" : }, { "geocoder_status" : "OK", "place_id" :...

Рандомный файл json в php
Привет форумчане! Нужна помощь. Если кратко нужно чтобы скрипт выбирал рандомно файл из папки.

Как сделать рандомный выбор файла из папки?
Есть такой код <?php $d = opendir("Z:\home\postucoz\www\data\news"); while ($name = readdir($d)){ if ($name == "." or $name ==...

Как достать из JSON значение ссылки на изображение "url_o"?
Всем привет! Подскажите, пожалуйста, как достать из строки значение ссылки на изображение "url_o"? Строка: ...

Достать координаты из json
Помогите достать координаты! Нужно именно отсюда достать координаты "location" : { "lat" : 55.755826, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
[golang] Insert Delete GetRandom O(1) (Leetcode: 380)
alhaos 16.06.2026
Insert Delete GetRandom O(1) Сложность: Medium Источник: LeetCode 380 Задача Реализовать структуру данных RandomizedSet, которая поддерживает следующие операции за O(1) в среднем:
Свет в конце тоннеля
kumehtar 16.06.2026
Поймал себя на одной мысли. Раньше мне всегда казалось неправильным жить без чёткого понимания, куда всё идёт. Будто я иду по дороге судьбы, но не знаю, куда она ведёт. А раз не знаю — значит,. . .
[golang] Реализация стека с поддержкой получения минимального элемента за O(1)
alhaos 16.06.2026
Min Stack Сложность: Medium Источник: LeetCode 155 Задача: Реализовать стек который поддерживает push, pop, top и получение минимального элемента за O(1). Методы:
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru