20行Python代码爬取2W多条音频文件素材~

    科技2024-05-10  86

    前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

    PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

    python免费学习资料以及群交流解答点击即可加入

    相关环境配置

    python 3.6pycharmrequestsparsel

    相关模块可pip安装,如果觉得安装速度太慢点击下面链接查看相关教程

    PIP安装模块失败或者速度慢教程

    请求网页

    import requests url = 'http://sc.chinaz.com/yinxiao/' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.get(url=url, headers=headers) print(response.text)

    但是返回数据有中文乱码,编码出现了问题,所以咱们只需要转码一下就可以了

    response.encoding = response.apparent_encoding

    解析数据

    import parsel selector = parsel.Selector(response.text) urls = selector.css('#musiclist .n1::attr(thumb)').getall() titles = selector.css('#musiclist .z a::attr(alt)').getall() data = zip(urls, titles) for i in data: print(i)

    保存数据

    response_2 = requests.get(url=download_url, headers=headers) filename = '路径' + title + '.mp3' with open(filename, mode='wb') as f: f.write(response_2.content)

    一页的音频文件就都保存到本地文件了

    多页爬取音频文件代码

    import requests import parsel for page in range(1, 603): url = 'http://sc.chinaz.com/yinxiao/index_{}.html'.format(page) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.get(url=url, headers=headers) response.encoding = response.apparent_encoding selector = parsel.Selector(response.text) urls = selector.css('#musiclist .n1::attr(thumb)').getall() titles = selector.css('#musiclist .z a::attr(alt)').getall() data = zip(urls, titles) for i in data: print(i) download_url = i[0] title = i[1] response_2 = requests.get(url=download_url, headers=headers) filename = '路径' + title + '.mp3' with open(filename, mode='wb') as f: f.write(response_2.content)

    每页40个文件,一共是602页数据,一共大概是2W多个音频文件素材,这边咱们就不等了就下载了一千多个文件,主要下载多了也占硬盘内存~ 代码还是有很多可以优化的地方~

    Processed: 0.013, SQL: 8