【问题标题】:Downloading *.mp4 files form url with Python使用 Python 从 url 下载 *.mp4 文件
【发布时间】:2019-06-11 13:40:58
【问题描述】:

我正在尝试生成 [url_audioenci,url_caratula,titulo_cancion,nombre_artista] 的数组以从 http://los40.com.ar/lista40/ 下载音乐列表。我知道如何使用 Requests 库下载媒体,但我无法从页面中提取链接

from bs4 import BeautifulSoup
import requests
# import re
url = 'http://los40.com.ar/m/lista40/'
videos = []
response = requests.get(url)
bs = BeautifulSoup(response.text)
for i in range (1,41):
    videos[i]= bs.find_all('datos_camcion_'+i))
# responses= bs.find_all('script', language="javascript", type="text/javascript")

print(videos)
<h3>LISTA DEL 08/06/2019</h3>
<script language="javascript" type="text/javascript">
  var datos_cancion_1 = Array();
  datos_cancion_1['url_audioenci']         = 'https://recursosweb.prisaradio.com/audios/dest/570005645440.mp4';
  datos_cancion_1['url_muzu']         = '';
  datos_cancion_1['url_youtube']      = 'https://www.youtube.com/watch?v=XsX3ATc3FbA';
  datos_cancion_1['url_itunes']       = '';
  datos_cancion_1['posicion']         = '1';
  datos_cancion_1['url_caratula']     = 'https://recursosweb.prisaradio.com/fotos/dest/570005645461.jpg';
  datos_cancion_1['titulo_cancion']   = 'Boy with luv';
  datos_cancion_1['nombre_artista']   = 'BTS;Halsey';
  datos_cancion_1['idYes']            = 'BTS';
  datos_cancion_1['VidAu']            = 0;
</script>

我期待

videos=[['https://recursosweb.prisaradio.com/audios/dest/570005645440.mp4','https://recursosweb.prisaradio.com/fotos/dest/570005645461.jpg','Boy with luv','BTS;Halsey'].....]

【问题讨论】:

    标签: python-3.x video python-requests html5-video mp4


    【解决方案1】:

    我过滤数据的尝试:

    from bs4 import BeautifulSoup
    import requests
    
    url = 'http://los40.com.ar/m/lista40/'
    videos = []
    response = requests.get(url)
    bs = BeautifulSoup(response.text, features="html5lib")
    
    scripts = bs.find_all('script', language='javascript', type='text/javascript') 
    end = len( bs.find_all('script', language='javascript', type='text/javascript') )
    start = end - 40
    data = []
    
    for i in range( start, end ):
        data.append( str(scripts[ i ]) )
    
    print( data[0] ) 
    

    输出:

    <script language="javascript" type="text/javascript">
      var datos_cancion_1 = Array();
      datos_cancion_1['url_audioenci']         = 'https://recursosweb.prisaradio.com/audios/dest/570005645440.mp4';
      datos_cancion_1['url_muzu']         = '';
      datos_cancion_1['url_youtube']      = 'https://www.youtube.com/watch?v=XsX3ATc3FbA';
      datos_cancion_1['url_itunes']       = '';
      datos_cancion_1['posicion']         = '1';
      datos_cancion_1['url_caratula']     = 'https://recursosweb.prisaradio.com/fotos/dest/570005645461.jpg';
      datos_cancion_1['titulo_cancion']   = 'Boy with luv';
      datos_cancion_1['nombre_artista']   = 'BTS;Halsey';
      datos_cancion_1['idYes']            = 'BTS';
      datos_cancion_1['VidAu']            = 0;
    </script>
    

    Data[0:39] 包含前 40 个和所有相关数据作为字符串,但我不确定如何从字符串中提取信息

    this thread 通过import jsonimport re 有一些建议,我试过摆弄,但我无法让它们发挥作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 2017-01-23
      • 2022-01-18
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多