爬小说音频

天冷了,被窝里听小说

        很久以前,小编是很喜欢看小说的。但是自从大学毕业后就很少看了,也没时间去看了。虽然没有时间去看了,但我还是会利用闲散的时间去听一听有声小说的。现在有声小说方面做的比较好的网站有“懒人听书”和“喜马拉雅”,当然还有一些其它好的网站。就我而言,是比较喜欢用“喜马拉雅”的。咱们今天的主题就跟这个网站有关。

        当你在“喜马拉雅”的手机客户端听小说时,会发现它居然有广告,还是10~15秒的样子吧。但我这个人就是不爱看广告,呃,听也不喜欢。我就感觉广告很烦人。我解决的办法是把音频下载到本地,用其它播放器一样能听小说。咱们用到的工具就是python。

        下面开始搞起~

第一步:确定目标网站和爬取的内容。

第二步:分析网页源代码,用正则表达式,提取音频ID,用这个ID去拼接真正的音频URL,每一个音频对应一个URL网址。

第三步:找到URL后就可以用urllib库去下载了。For循环一下,很快就下好了。

 

# -*- coding: gbk -*- 
"""
时间:2018年3月31日 18:07:39
内容:爬取喜马拉雅‘青帝’前一百集
"""
import requests
import urllib
import re

url = "http://www.ximalaya.com/7817039/album/2900921/"
#这个网站如果不用headers伪装一下,获取不了HTML源码
data = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"}
response = requests.get(url, headers=data)    
html = response.text
#用正则表达式提取音频ID
songId = re.findall(r'sound/(\d+)/', html)
#拼接json的url 
for ids in songId:
    requestUrl = "http://www.ximalaya.com/tracks/" + ids + ".json"
    #发送josn的url
    jsonUrl = requests.get(requestUrl, headers=data)
    #提取目标音频url
    songUrl = jsonUrl.json()['play_path_64']
    #下载
    urllib.request.urlretrieve(songUrl, filename = 'D:\\programme\\Python Example\\Spider\\number_two\\httpwww_ximalaya_com\\ximalaya' + songUrl[-18:])

 

THE END

本实例只供学习交流,请勿用于非法用途。另上述实例不一定适应当前状态的网站。

想要获取更多精彩内容,请加V信公众号:Python练习册 或 加小编V信:AA_FMspider。欢迎分享转载文章。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值