python 2.7 音频《三国演义》下载

自己总结的一些思路:
1.先到所要下载的音频的网页查找网络的一些基本信息(url,headers)
2.在network里查找json文件,得到下载所在的网页路径
3.开始编码
4.先正则匹配到每章节的id和名称
5.找到该章节下载所在的网页
6.正则匹配下载网页里的下载网址
7.以.m4a的 形式存到本地



#coding=utf-8
import requests
import re
from bs4 import BeautifulSoup

def  get_url(url):
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36",

    }

    res = requests.get(url, headers=headers)
    return res

def  main():
    url = "https://www.ximalaya.com/renwen/268522/"
    res = get_url(url)
    res.encoding="utf-8"
    html = res.text
    soup = BeautifulSoup(html, features='lxml')
#查看一下网页
    print soup.prettify()  # 将网页格式化
#正则匹配一下《三国演义》的id以及他的章节名称
    reg = 'href="/lishi/268522/(.*?)">(.*?)</a>'
    name_url = re.findall(reg,html)

    for sound_id,title in name_url:
#输出id和章节查看一下
        print sound_id,title
#找到对应章节下载的所在的网页
        json.url = 'http://www.ximalaya.com/tracks/'+str(sound_id)+'.json'
        print json.url

        r = get_url(json.url)
#正则匹配一下下载路径
        regs = '"play_path_64":"(.*?)"'
        sound_url = re.findall(regs,r.text)
        print sound_url[0]
#将该章节以.m4a形式下载到本地文件中
        ret =get_url(sound_url[0])
        with open("C://img222//"+title+'.m4a','wb') as f:
            f.write(ret.content)


if __name__ == "__main__":
    main()

猜你喜欢

转载自blog.csdn.net/qq_42133828/article/details/83661272