大家好,今天来为大家分享有声小说下载mp3的一些知识点,和批量下载“爱书音”有声小说mp3的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
最近在听阿陈播的二号首长,非常过瘾,1~3部全听完了,发现后续还有高手过招。不过是在爱书音网页上。
?
不过一共122集,于是想实现把这些的音频mp3都下载到手机上听。
分析了下:
比如第18集,url是“https://www.ishuyin.com/player.php?mov_id=19248&look_id=18&player=down”
打开每集的页面,中间有个下载,href里面真好是mp3的下载地址:
?
但是事情没那么简单,通过查看网页源码发现:
?
这个href是加密的,是通过js动态算出来的。在页面中找找js,发现了加密算法:
?
也就是先通过*切割字符串,再将每个数字转换成字母。
通过以上分析,就有了思路:
全部代码:
importrequestsnimportjsonnfrombs4importBeautifulSoupns=requests.Session()nheaders={n"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",n"Accept-Encoding":"gzip,deflate,br",n"Host":"www.ishuyin.com",n"Referer":"https://www.ishuyin.com/show-19248.html",n"User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/71.0.3578.98Safari/537.36"n}ndefparse(url):nret=s.get(url=url,headers=headers)nsoup=BeautifulSoup(ret.content,"html.parser")nd=soup.select("#urlDown")[0]nh=d.attrs["href"].split("*")nr="".join([chr(int(x))forxinhifx!=""])nreturnrndefdownload(link,index):nss=requests.Session()nret=ss.get(link)nwithopen("mp3/{}.mp3".format(index),'wb')asfile:nfile.write(ret.content)nif__name__=='__main__':nforiinrange(34,123):nurl="https://www.ishuyin.com/player.php?mov_id=19248&look_id={}&player=down".format(i)nlink=parse(url)ndownload(link,i)nprint(u"第{}集下载完成".format(i))nn
效果:
?
?
源码:https://github.com/onelittlecoder/python/blob/master/cmd/multi-download-ishuyin-mp3.py
关于有声小说下载mp3,批量下载“爱书音”有声小说mp3的介绍到此结束,希望对大家有所帮助。