第一步:打开QQ音乐网页版,在搜索框中随性搜索一波,获得一个搜索列表正则表达式
第二步:F12 F5 打开开发者工具json
发现了一大坨各式各样的文件 我的认为要实现搜索功能必须先找到搜索列表中包含9首歌详细信息的文件所对应的URLless
而后就慢慢找啊找啊找啊 而后发现工具
有个list中存储了每首歌的如下基本信息!!!测试
对应的是这一个文件 而后咱们到headers部分找到他的URLorm
又臭又长的URL(一言难尽...)ssl
但其实,咱们能够稍微用点小技巧解析一下这串URL开发
小技巧1:把参数n的值改变一下(n=10意味着只会返回10首歌的信息)咱们把n赋一个很大的值 这样 咱们能够获得尽量多的歌曲信息 是咱们的搜索功能更加好rem
小技巧2:精简URL一个参数一个参数的删除,没有的参数删除后,经测试,打开的内容是不变的
小技巧3:URL实际上是使用了 & 隔开每一个参数 因此咱们以 & 为界隔开各个参数就可让URL更加易读易懂
到目前为止,咱们算是找到了一个搜索列表的URL,可是若是要达到“搜索功能”,就确定会获取无数个搜索列表,
他们的URL一个个去找明显不可取
因此此时我联想(脑洞而已)到:咱们是否能够找到URL中的 变量 与 不变量 而后不变量用一种匹配模式去匹配
因而乎咱们就获得:由 不变量 和 关于变量的匹配模式组成的一个 “通用的URL”
当咱们输入关键词时,经过与这个“通用的URL”匹配即可获得对应的搜索列表
下面我将经过搜索不一样的关键词 去寻找URL中的 不变量 与 变量(此处省略步骤的展现)
比较以后,我发现了不一样的参数是: w
w=%E8%96%9B%E4%B9%8B%E8%B0%A6&g_tk=1315617814(“薛之谦”)
w=%E5%91%A8%E6%9D%B0%E4%BC%A6&g_tk=1321333438(“周杰伦”)
这里我是经过正则表达式去匹配的
匹配后就是常规的 读取URL---》获得返回体--》解析返回体中的数据
分析数据的时候涉及了一个:json格式转换为列表格式的操做
最后 咱们经过循环输出列表中咱们所需的信息(歌曲名 歌手名 专辑名 歌曲时长。。。(想要啥要啥))
写在最后:搜索功能的代码已经实现 下载功能的思路其实能够说是和搜索功能的如出一辙 注意细节很快就能实现了