前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
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多个音频文件素材,这边咱们就不等了就下载了一千多个文件,主要下载多了也占硬盘内存~ 代码还是有很多可以优化的地方~