有一个网站有13页midi文件,我想下载,我无法手动下载数百个文件,所以我想知道是否有任何方法可以使用python获取所有可下载的文件。
这是网站的网址:http://midkar.com/jazz/jazz_01.html 网站中的每个页面都有一个链接列表,当您点击时它们就会开始下载。
我写了一个for循环来浏览所有13个页面:
for i in range(1,14):
url = "http://midkar.com/jazz/jazz_0" + str(i) + ".html"
print(url)
但这几乎就是我所做的一切,我希望得到一些帮助。
答案 0 :(得分:1)
你应该学会使用请求模块获取页面,使用BeautifulSoup模块通过解析这些页面的html获取实际链接,然后再获取这些链接并使用请求模块下载它们。
无法为您编写整个代码,但您应该从这里开始:
请求:http://docs.python-requests.org/en/master/user/quickstart/
BeautifulSoup:https://www.crummy.com/software/BeautifulSoup/bs4/doc/
答案 1 :(得分:0)
您可以使用Beatutifulsoup和请求编写一个简单的Web爬网程序。
from bs4 import BeautifulSoup
import requests
for i in range(1,14):
url = "http://midkar.com/jazz/jazz_0" + str(i) + ".html"
page = requests.get(url).content
soup = BeautifulSoup(page, 'html5lib')
# find all links on page
links = soup.find_all('a', href=True)
for link in links:
# build absolute url
link_url = requests.compat.urljoin(url, link['href'])
if link_url.endswith('.mid'):
# download midi file and write it to a local file
filename = link_url.split('/')[-1]
with open(filename, 'wb') as midifile:
midifile.write(requests.get(href).content)
print(filename)