最近在听阿珍电视台的2号首长,非常兴奋,听完1~3份后,发现高手们招供了。
不过是在爱书音网页上。
不过一共122集,于是想实现把这些的音频mp3都下载到手机上听。
分析了下 :
比如第18集,url是“;look_id=18&player=down”
打开每集的页面,中间有个下载,href里面真好是mp3的下载地址:
但是事情没那么简单,通过查看网页源码发现:
这个href是加密的,是通过js动态算出来的。在页面中找找js,发现了加密算法:
也就是先通过*切割字符串,再将每个数字转换成字母。
通过以上分析,就有了思路:
全部代码:
import requests import json from bs4 import BeautifulSoup s = reque() headers = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Host": "www.i;, "Referer": ";, "User-Agent": "Mozilla (Windows NT 10.0; WOW64) AppleWebKi (KHTML, like Gecko) Chrome Safari; } def parse(url): ret = s.get(url=url, headers=headers) soup = BeautifulSou, ";) d = ("#urlDown")[0] h = d.attrs["href"].split("*") r = "".join([chr(int(x)) for x in h if x != ""]) return r def download(link, index): ss = reque() ret = (link) with open("mp3/{}.mp3".format(index), 'wb') as file: ) if __name__ == '__main__': for i in range(34, 123): url = ";look_id={}&player=down".format(i) link = parse(url) download(link, i) print(u"第{}集下载完成".format(i))效果:
源码: