代码实现功能:
将输入的要查询的歌曲名字存入name.txt文件中
判断输入的名字是否在name.txt文件中,来确定是否可以写入文档
将搜索到的歌曲存入song.txt文件中
1.代码中需要引入的包
import requestsimport json
# 操作文件的包
import os
2.判断输入的名字是否为空或者换行,如果是,跳出循环
if not name.strip():
# 则查询结束
break
3.引入操作系统,判断是否存在文件 name.txt
if not os.path.exists("name.txt"):
4.参数 params的应用url = "http://search.kuwo.cn/r.s?ft=music&itemset=web_2013&client=kt&rformat=json&encoding=utf8"
response = requests.get(url=url,
params={
"all": name,
"pn": start_page,
"rn": num
})
print(response.text)
5. JSON的key和value不能用单引号括起来
将获取到的数据转换为json数据
print(result)
json_obj = json.loads(result)
print(json_obj)
6.两种写入文件的方法
法一:
# f = open("song.txt", "", encoding='utf-8')
# f.write(song.get('SONGNAME', '没有歌曲名称'))
# f.write('\n')
# f.close()
法二:
# 以下写法 不用写close
with open("song.txt", "a", encoding='utf-8') as f:
f.write(song.get('SONGNAME', '没有歌曲名称'))
f.write('\n')
完整代码:
# -*- coding:utf-8 -*-
import requests
import json
# 操作文件的包
import os
while True:
name = input("请输入歌曲名称:")
# name去掉空格和换行
if not name.strip():
# 则查询结束
break
if not os.path.exists("name.txt"):
with open('name.txt', 'w', encoding='utf-8') as f:
f.write('')
with open('name.txt', 'r', encoding='utf-8') as f:
name_list = f.readlines()
if name+"\n" in name_list:
print("已经搜索过!")
continue
else:
with open('name.txt', 'a', encoding='utf-8') as f:
f.write(name)
f.write('\n')
start_page = 0
num = 25
url = "http://search.kuwo.cn/r.s?ft=music&itemset=web_2013&client=kt&rformat=json&encoding=utf8"
response = requests.get(url=url,
params={
"all": name,
"pn": start_page,
"rn": num
})
print(response.text)
# JSON的key和value不能用单引号括起来
result = response.text.replace("'", '"').replace(' ', '')
print(result)
json_obj = json.loads(result)
print(json_obj)
song_list = json_obj['abslist']
for song in song_list:
print(song.get('SONGNAME', '没有歌曲名称'))
# f = open("song.txt", "", encoding='utf-8')
# f.write(song.get('SONGNAME', '没有歌曲名称'))
# f.write('\n')
# f.close()
# 以下写法 不用写close
with open("song.txt", "a", encoding='utf-8') as f:
f.write(song.get('SONGNAME', '没有歌曲名称'))
f.write('\n')