reinhand 发表于 2018-9-17 16:14

[python]下载小伴龙网站的儿歌

本帖最后由 reinhand 于 2018-9-27 15:29 编辑

今天给儿子下载一些儿歌等到MP3,发现一个不错的网站http://www.youban.com/mp3/

资源还是挺多的嘛~~点开唐诗三百首进去看看

还挺多的,点开一个进去,可以看得到进去是简介,再点击立面的下载才到下载页面。。。一个一个下载太费事。。
仔细观察了一下,网站全是静态网页,以《春晓》为例,简介网址为http://www.youban.com/mp3-4300.html,下载网址为http://www.youban.com/mp3-d4300.html,只差一个d(管理员真懒。。)
再来看一下下载页面的源代码,可以看到下载的真实地址就在源代码呢。。。再往上也有这个音频的名称,我们要的信息都有了,<a href="/mp3/">音频</a>><a href="/mp3-4300.html">春晓</a>这是存放名称的标签,有个href属性,记下
现在的问题时要批量下载,回到唐诗三百首专辑的页面查看原代码,,我们要的地址出来了。。都在<a>标签里面,其中第二个<a>标签有个属性class="mp3PlayIco",而且
其他所有的子项网址都在。。好了,掏出利器开始收集网址吧,requests和beautifulsoup4模块
import requests
from bs4 import BeautifulSoup
r = requests.get('http://www.youban.com/mp3-t4416.html')
soup = BeautifulSoup(r.text,'lxml')
a=soup.find_all('a',class_='mp3PlayIco')
urls=[]
nn=[]
for i in a:   
u = i['href'].split('/')   
urls.append(base+u.replace('mp3-','mp3-d'))   
nn.append('/'+u)
   #这里的nn存放的就是上面说到的存放名称标签的href属性的值
好了,url拿到了,开始下载,这里采用的单线程下载
for i in range(len(a)):
    try:
      url1 = urls
      c = requests.get(url1)
      soup = BeautifulSoup(c.text,'lxml')
      durl = soup.find_all('a',text=u'本地网通')['href']
      savename = soup.find_all('a',href=nn).text+'.mp3'
      r = requests.get(durl)
      with open(savename, "wb") as code:
            code.write(r.content)
      print 'Done'
    except:
      print url1
好啦,至此唐诗三百首专辑的所有MP3就下载完成啦~~

reinhand 发表于 2018-11-11 10:27

w241357 发表于 2018-11-11 09:34
怎么批量采集下载它啊

代码都有,只不过是单合集,单线程下载~想全部采集全部,把合集名字做个列表传入下载就行,嫌慢就用多线程~~不过这些文件都不大,单合集的话单线程完全嗯呢该胜任

w241357 发表于 2018-11-11 11:53

reinhand 发表于 2018-11-11 10:27
代码都有,只不过是单合集,单线程下载~想全部采集全部,把合集名字做个列表传入下载就行,嫌慢就用多线 ...

大佬,有码吗?我不会写啊....

真宗王老吉凉茶 发表于 2018-9-17 16:57

能做这个的防站吗

wushaominkk 发表于 2018-9-17 16:57

请整理下排版!

music984 发表于 2018-9-17 17:00

回家好生研究一下lz的代码 我的入门的道路上渐行渐远了

流星的孤单 发表于 2018-9-18 08:34

路过,顶一个

唯殇啊 发表于 2018-9-20 21:40

楼主有下载好的合集吗

13242998660 发表于 2018-9-21 02:36

学习一下

reinhand 发表于 2018-9-27 15:21

唯殇啊 发表于 2018-9-20 21:40
楼主有下载好的合集吗

木有。。。太多啦,只下载了一部分。。

reinhand 发表于 2018-9-27 15:22

wushaominkk 发表于 2018-9-17 16:57
请整理下排版!

好的~~回头重新排版下

reinhand 发表于 2018-9-27 15:23

真宗王老吉凉茶 发表于 2018-9-17 16:57
能做这个的防站吗

这个真的不是很了解,可以采用动态js或者限制ip,不过这样只是让爬虫代码稍微复杂点而已、、
页: [1] 2
查看完整版本: [python]下载小伴龙网站的儿歌