This link包括一些mp3文件,这些文件是巴拉克·奥巴马(Barack Obama)的演讲。我想下载这些音频文件,但是我必须单击每个mp3文件,然后一步一步地下载它,这非常繁琐。使用Python可以做到吗?
答案 0 :(得分:1)
您可以使用https://pypi.org/project/wget/下载网页或mp3之类的文件
然后解析超链接的html内容,检索超链接,然后wget该链接。
这可能包括通过检查您发布的网页的浏览器上的元素进行的大量解析。
这里是您要查找的内容,为了方便使用,我使用了python2.7和shell。用于Linux的Linux wget显示“错误403:禁止”,但python wget起作用。
>>> # download the webpage
>>> import wget
>>> file = wget.download("https://www.americanrhetoric.com/barackobamaspeeches.htm")
100% [............................................................................] 522790 / 522790>>>
>>> file
u'barackobamaspeeches.htm'
>>>
使用grep和awk解析下载的文件,以从中提取链接。如果您不了解grep和awk,请阅读有关它的信息。
$ ls
barackobamaspeeches.htm
$ grep "<a href" barackobamaspeeches.htm | grep mp3 | awk -F \" '{print $2}' > mp3_links
$ ls
barackobamaspeeches.htm mp3_links
现在有可用的链接,请阅读并使用wget下载。
>>> # Read links from file in a list
>>> fd = open("mp3_links", "r")
>>> links = fd.read().splitlines()
>>> fd.close()
>>>
>>> # Create links for download by prepending base url
>>> base_link = 'https://www.americanrhetoric.com/'
>>> for link in links:
>>> print(base_link + link)
>>>
>>> # replace print with wget.download(base_link + link)
我已经测试了单个链接,请尝试并相应地调整代码