您的位置:首页 > 产品设计 > UI/UE

基于requests的歌曲查询

2018-02-27 19:18 232 查看
代码整体思想:运行名字之后将会生成两个文档,一个文档是name.txt,用于放输入的名字;另一个文档是song.txt,用于存放搜索到的信息数据。1.首先判断name.txt文件是否存在,如果存在,则继续去读name.txt文档里的内容;若不在,则需先建立此文档,然后再去读文件。2.将每次输入的名字与name.txt文件里的内容做比较,倘若在文件里,则说明此歌名对应的数据已在song.txt文档里,就continue跳出此次循环;如果不在的话,则将数据存入song.txt文档里

首先,引入所需要的各种包import requests
import json
import os
while True:
name = input("歌曲名称:")
先将输入的名字中的空格取出,然后判断是否为空。为空的话跳出while循环 if not name.strip():
break如果不存在name.txt文件,则创建,先不写入任何内容 if not os.path.exists('name.txt'):
with open('name.txt', 'w', encoding='utf-8') as f:
f.write('')执行到这一步,说明name.txt文件是一定存在的。读取此文档里的内容,返回一个列表 with open('name.txt', 'r', encoding='utf-8') as f:
name_list = f.readlines()如果名字在上一步得到的列表里,就跳出此次循环 if name+"\n" in name_list:
print('已经搜索过')
continue否则已追加的形式打开文件,将name写入name.txt文档里 else:
with open('name.txt', 'a', encoding='utf-8') as f:
f.write(name)
f.write('\n')定义开始页数  每页显示几条数据  以及url  其中params用来传递参数,将其内容拼接到url之后
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
}
)
由于 JSON的key和value不能用单引号括起来,所以要用replace函数将单引号替换成双引号 result = response.text.replace("'", '"').replace(' ', '')
json_obj = json.loads(result)
song_list = json_obj['abslist']
for song in song_list在此处说明,文件的调用有两种形式
形式一: # print(song.get('SONGNAME', '没有歌曲名称'))
# f = open("song.txt", 'a', 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')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: