批量下载“爱书音”有声小说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,发现了加密算法:

也就是先通过*切割字符串,再将每个数字转换成字母。

通过以上分析,就有了思路:

主函数:

if __name__ == '__main__':
    for i in range(1,123):
        url="https://www.ishuyin.com/player.php?mov_id=19248&look_id={}&player=down".format(i)
        parse(url)
        download(link, i)
        print(u"第{}集下载完成".format(i))

 parse函数:

def parse(url):
    ret = s.get(url=url, headers=headers)
    soup = BeautifulSoup(ret.content, "html.parser")
    d = soup.select("#urlDown")[0]
    h = d.attrs["href"].split("*")
    r = "".join([chr(int(x)) for x in h if x != ""])
    return r

 download函数:

def download(link, index):
    ss = requests.Session()
    ret = ss.get(link)
    with open("mp3/{}.mp3".format(index), 'wb') as file:
        file.write(ret.content)

效果:

源码:https://github.com/onelittlecoder/python/blob/master/cmd/multi-download-ishuyin-mp3.py 

 

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值