Как я могу извлечь информацию из bs4.element.Tag и сохранить ее в массиве? - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь загрузить весь список песен с http://los40.com.ar/lista40/, Я могу загрузить вручную, но я хотел бы автоматизировать процесс. Сначала я достал ульс с красивым супом, но я не могу определить результат этого

Например, это первая песня в списке:

  var datos_cancion_1 = Array();
  datos_cancion_1['url_audioenci']         = 'https://recursosweb.prisaradio.com/audios/dest/010002713547.mp4';
  datos_cancion_1['url_muzu']         = '';
  datos_cancion_1['url_youtube']      = 'https://www.youtube.com/watch?v=0S3enulCT8E';
  datos_cancion_1['url_itunes']       = '';
  datos_cancion_1['posicion']         = '1';
  datos_cancion_1['url_caratula']     = 'https://recursosweb.prisaradio.com/fotos/dest/010002713548.jpg';
  datos_cancion_1['titulo_cancion']   = '22';
  datos_cancion_1['nombre_artista']   = 'Greeicy;Tini';
  datos_cancion_1['idYes']            = 'Tini';
  datos_cancion_1['VidAu']            = 0;

И я хотел бы получить массив или json, как: ['https://recursosweb.prisaradio.com/audios/dest/010002713547.mp4',' https://recursosweb.prisaradio.com/fotos/dest/010002713548.jpg,Greeicy;Tini] [Datos_cancion_1 [ 'url_audioenci'], datos_cancion_1 [ 'url_caratula']]

Это мой код, надеюсь, вы мне поможете:

from bs4 import BeautifulSoup
import requests
import json
import re
import urllib

url = 'http://los40.com.ar/m/lista40/'
videos = []
response = requests.get(url)
bs = BeautifulSoup(response.text,"html.parser")
all_script=bs.find_all('script', language='javascript', type='text/javascript')
data=all_script[8:]
a= data[0].string

b=['https://recursosweb.prisaradio.com/audios/dest/010002713547.mp4','https://recursosweb.prisaradio.com/fotos/dest/010002713548.jpg','Greeicy;Tini', datos_cancion_1['nombre_artista'] ]
print(a)
urllib.request.urlretrieve(b[0],b[2] +'.mp3')

1 Ответ

0 голосов
/ 27 июня 2019

Вы можете попробовать это:

song_list = [''.join(' '.join(i.text.split('\n')).split('=')).split(';') for i in data]

Это даст вам массив массивов, каждый из которых выглядит так:

["'https://recursosweb.prisaradio.com/audios/dest/010002696230.mp4'",
 "   datos_cancion_2['url_muzu']          ''",
 "   datos_cancion_2['url_youtube']       "
 "'https://www.youtube.com/watch?v1Jw_mhoCiFY'",
 "   datos_cancion_2['url_itunes']        ''",
 "   datos_cancion_2['posicion']          '2'",
 "   datos_cancion_2['url_caratula']      "
 "'https://recursosweb.prisaradio.com/fotos/dest/010002696233.jpg'",
 "   datos_cancion_2['titulo_cancion']    'Cristina'",
 "   datos_cancion_2['nombre_artista']    'Sebastián Yatra'",
 "   datos_cancion_2['idYes']             'Sebastian-Yatra'",
 "   datos_cancion_2['VidAu']             0",
 ' ']

Отсюда, я думаю, вы сможете упорядочить окончательный массив по своему желанию.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...