python-3.x - 使用 Python 从 url 下载 *.mp4 文件
问题描述
我正在尝试生成 [url_audioenci,url_caratula,titulo_cancion,nombre_artista] 的数组,以从http://los40.com.ar/lista40/下载音乐列表。我知道如何使用请求库下载媒体,但我无法从页面中提取和链接
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'].....]
解决方案
我尝试过滤数据:
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 个和所有相关数据作为字符串,但我不确定如何从字符串中提取信息。
这个线程中有一些建议,import json
或者import re
我尝试过摆弄,但我无法让它们工作。
推荐阅读
- python - 从python中的文本文件加载网格
- apache - 使用 apache conf 文件中的变量列表
- javascript - HTML表格使用JavaScript跳过组中的重复行
- spring-boot - 同一个 Springboot 应用程序的多个实例,但只有 1 个实例使用来自 ActiveMQ 队列的消息
- reactjs - 我应该在哪里存储 Redux 中间件的本地状态?
- python - 如何在python中使用excel公式(宏)处理excel文件(xlsx,xls)
- sql - 无法将字符串转换为数字
- ms-access - MS Access 查找并更新另一个字段
- javascript - 根据下拉列表自动选择两个选项
- php - 在替换 SQL 中包含帖子标题 wordpress