我正在尝试学习 Python,并尝试编写代码从我的教堂网站下载所有圣经 mp3 文件,其中有一个 mp3 超链接列表,例如:
第1章,第2、3、4、5章等等…… 参考链接
运行我的代码后,我设法让所有 mp3 URL 链接显示在 shell 上,但我似乎根本无法下载它们。
这是我的代码
import requests
import urllib.request
import re
from bs4 import BeautifulSoup
r = requests.get('https://ghalliance.org/resource/bible-reading')
soup = BeautifulSoup(r.content, 'html.parser')
for a in soup.find_all('a', href=re.compile('http.*\.mp3')):
print(a['href'])
我确实尝试过使用 wget 但我似乎无法让 wget 在运行 VSCode Python 3.8.1 64 位或 conda 3.7.4 的机器上工作…我已经检查了 conda cmd 和 cmd,它表明我我的系统中有 wget,我什至手动将 wget.exe 下载到我的 system32 目录,但每当我尝试运行
wget.download(url)
我总是收到一条错误消息或类似 wget 没有属性“下载”或诸如此类的东西。
我阅读了一些关于使用 selenium、wget、beautifulsoup 下载简单图片等的初学者教程,但我似乎无法将他们的方法结合起来解决我的这个特定问题……因为我对编程还是太陌生了将军,所以我为问这些愚蠢的愚蠢问题而道歉。
但是现在我有了所有的 MP3 URL 链接,所以我的问题是:我如何使用 Python 下载它们?
原文由 iGamers 发布,翻译遵循 CC BY-SA 4.0 许可协议
请注意:
requests.Session()
to maintain theTCP
connection session instead of keep repeat an action of opening asocket
andclosing
它。stream=True
来避免损坏的下载。.status_code
为response
检查状态。Chiv Keeb 22mp3
和Cov Thawjtswj 01mp3
其中扩展名应该是.mp3
。以下是实现您的目标的正确代码。