【问题标题】:How can I download music files from websites using #Python如何使用#Python 从网站下载音乐文件
【发布时间】:2021-08-16 19:07:41
【问题描述】:
  1. 如何使用#Python 从网站下载音乐文件

这段代码

from bs4 import BeautifulSoup
from requests import *
import urllib

link = input("https://www.chosic.com/free-music/all/")

url = urllib.request.urlopen(link)
content = url.read()
soup = BeautifulSoup(content,'html.parser')
for audio in soup.find_all('audio'):
    print(len(audio))

Traceback (most recent call last):
  File "C:\Users\pc\Desktop\Downloads files from url using python .py", line 8, in <module>
    url = urllib.request.urlopen(link)
  File "C:\Program Files\Python39\lib\urllib\request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Program Files\Python39\lib\urllib\request.py", line 501, in open
    req = Request(fullurl, data)
  File "C:\Program Files\Python39\lib\urllib\request.py", line 320, in __init__
    self.full_url = url
  File "C:\Program Files\Python39\lib\urllib\request.py", line 346, in full_url
    self._parse()
  File "C:\Program Files\Python39\lib\urllib\request.py", line 375, in _parse
    raise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: ''

我想通过网站链接提取链接mp3和wav 请有人可以帮助我

【问题讨论】:

  • 首先不要导入所有内容(导入时不要使用*),其次你认为这行代码是做什么的:link = input("https://www.chosic.com/free-music/all/")?它要求输入,您输入的内容由 link 引用,因此您可以在控制台中输入 url 或简单地执行 link = "https://www.chosic.com/free-music/all/"
  • 我试过了,但它不起作用请帮助我

标签: python web-scraping


【解决方案1】:

您可以使用下一个示例如何从该页面下载所有 mp3 文件:

import requests
from bs4 import BeautifulSoup

headers = {
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0"
}

url = "https://www.chosic.com/free-music/all/"
soup = BeautifulSoup(requests.get(url).content, "html.parser")

for u in soup.select("[data-url]"):
    u = u["data-url"]
    print("Downloading {}".format(u))
    with open(u.split("/")[-1], "wb") as f_out:
        f_out.write(requests.get(u, headers=headers).content)

打印:

Downloading https://www.chosic.com/wp-content/uploads/2020/06/John_Bartmann_-_09_-_Happy_Clappy-1.mp3
Downloading https://www.chosic.com/wp-content/uploads/2020/11/batchbug-sweet-dreams.mp3
Downloading https://www.chosic.com/wp-content/uploads/2021/01/fm-freemusic-inspiring-optimistic-upbeat-energetic-guitar-rhythm.mp3
Downloading https://www.chosic.com/wp-content/uploads/2021/02/keys-of-moon-white-petals.mp3


...and so on.

并保存*mp3 文件。

【讨论】:

  • 顺便说一句,headers 有必要吗?
  • 它正在工作,谢谢你,但是我不明白这个标题 = { "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/ 91.0" }
  • @Matiiss 没有最后一个headers= 服务器发送空响应。
  • @sakomalten 有时要从服务器获得正确的响应,您需要设置正确的 HTTP 标头。在这种情况下,当我尝试下载 mp3 时,我收到了来自服务器的空响应
  • @Matiiss 是的,这是必要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 1970-01-01
  • 2023-03-14
  • 2017-06-03
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
相关资源
最近更新 更多