<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>编程 on 我的博客</title><link>https://blog.xialins.cn/tags/%E7%BC%96%E7%A8%8B/</link><description>Recent content in 编程 on 我的博客</description><generator>Hugo</generator><language>zh</language><lastBuildDate>Wed, 17 Sep 2025 03:15:05 +0000</lastBuildDate><atom:link href="https://blog.xialins.cn/tags/%E7%BC%96%E7%A8%8B/index.xml" rel="self" type="application/rss+xml"/><item><title>随机密码生产器</title><link>https://blog.xialins.cn/posts/migrated/post-176/</link><pubDate>Wed, 17 Sep 2025 03:15:05 +0000</pubDate><guid>https://blog.xialins.cn/posts/migrated/post-176/</guid><description>&lt;h5 id="python源码">python源码&lt;/h5>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> random
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> re
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> tkinter &lt;span style="color:#66d9ef">as&lt;/span> tk
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>a &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;#39;abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ!@#%&amp;amp;*()&amp;lt;&amp;gt;&lt;/span>&lt;span style="color:#e6db74">{}&lt;/span>&lt;span style="color:#e6db74">+?123456789&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">generate&lt;/span>(n): &lt;span style="color:#75715e">#n表示密码位&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> s &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ddtt &lt;span style="color:#f92672">=&lt;/span> \&lt;span style="color:#e6db74">&amp;#34;&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74"> # 初始化 ddtt 变量&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">while&lt;/span> s &lt;span style="color:#f92672">==&lt;/span> &lt;span style="color:#ae81ff">0&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ddtt &lt;span style="color:#f92672">=&lt;/span> [] &lt;span style="color:#75715e"># 创建一个空列表&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">for&lt;/span> i &lt;span style="color:#f92672">in&lt;/span> range(n): &lt;span style="color:#75715e"># 循环n次&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> rand &lt;span style="color:#f92672">=&lt;/span> random&lt;span style="color:#f92672">.&lt;/span>randint(&lt;span style="color:#ae81ff">0&lt;/span>, len(a)&lt;span style="color:#f92672">-&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>) &lt;span style="color:#75715e"># 生成随机数&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ddtt&lt;span style="color:#f92672">.&lt;/span>append(a[rand]) &lt;span style="color:#75715e"># 将随机数添加到列表中&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ddtt &lt;span style="color:#f92672">=&lt;/span> \&lt;span style="color:#e6db74">&amp;#34;&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">.join(ddtt) # 将列表转换为字符串&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> re&lt;span style="color:#f92672">.&lt;/span>search(&lt;span style="color:#e6db74">r&lt;/span>&lt;span style="color:#e6db74">&amp;#39;[a-z]&amp;#39;&lt;/span>, ddtt): &lt;span style="color:#75715e"># 判断字符串中是否包含小写字母&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> re&lt;span style="color:#f92672">.&lt;/span>search(&lt;span style="color:#e6db74">r&lt;/span>&lt;span style="color:#e6db74">&amp;#39;[A-Z]&amp;#39;&lt;/span>, ddtt): &lt;span style="color:#75715e"># 判断字符串中是否包含大写字母&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> re&lt;span style="color:#f92672">.&lt;/span>search(&lt;span style="color:#e6db74">r&lt;/span>&lt;span style="color:#e6db74">&amp;#39;[0-9]&amp;#39;&lt;/span>, ddtt): &lt;span style="color:#75715e"># 判断字符串中是否包含数字&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> re&lt;span style="color:#f92672">.&lt;/span>search(&lt;span style="color:#e6db74">r&lt;/span>&lt;span style="color:#e6db74">&amp;#39;[!@#%&amp;amp;*()&amp;lt;&amp;gt;&lt;/span>&lt;span style="color:#e6db74">{}&lt;/span>&lt;span style="color:#e6db74">+?]&amp;#39;&lt;/span>, ddtt): &lt;span style="color:#75715e"># 判断字符串中是否包含特殊字符&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> s &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span> &lt;span style="color:#75715e"># 满足条件，跳出循环&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> ddtt &lt;span style="color:#75715e"># 返回生成字符串&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">create_window&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> \&lt;span style="color:#e6db74">&amp;#34;&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">创建一个带有两个文本框的简单GUI窗口&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;\&amp;#34;\&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 创建主窗口&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> window &lt;span style="color:#f92672">=&lt;/span> tk&lt;span style="color:#f92672">.&lt;/span>Tk()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> window&lt;span style="color:#f92672">.&lt;/span>title(\&lt;span style="color:#e6db74">&amp;#34;随机密码生成&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 设置窗口大小&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> window&lt;span style="color:#f92672">.&lt;/span>geometry(\&lt;span style="color:#e6db74">&amp;#34;220x250&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">) # 宽x高 (像素)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 添加输入文本标签&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> input_label &lt;span style="color:#f92672">=&lt;/span> tk&lt;span style="color:#f92672">.&lt;/span>Label(window, text&lt;span style="color:#f92672">=&lt;/span>\&lt;span style="color:#e6db74">&amp;#34;生成几位数：&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> input_label&lt;span style="color:#f92672">.&lt;/span>pack(pady&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">5&lt;/span>) &lt;span style="color:#75715e"># 增加上下内边距&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 创建输入文本框&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> input_entry &lt;span style="color:#f92672">=&lt;/span> tk&lt;span style="color:#f92672">.&lt;/span>Entry(window)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> input_entry&lt;span style="color:#f92672">.&lt;/span>insert(&lt;span style="color:#ae81ff">0&lt;/span>, \&lt;span style="color:#e6db74">&amp;#34;8&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> input_entry&lt;span style="color:#f92672">.&lt;/span>pack(pady&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">5&lt;/span>) &lt;span style="color:#75715e"># 增加上下内边距&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 添加显示长度标签&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> length_label &lt;span style="color:#f92672">=&lt;/span> tk&lt;span style="color:#f92672">.&lt;/span>Label(window, text&lt;span style="color:#f92672">=&lt;/span>\&lt;span style="color:#e6db74">&amp;#34;随机密码生成：&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> length_label&lt;span style="color:#f92672">.&lt;/span>pack(pady&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">5&lt;/span>) &lt;span style="color:#75715e"># 增加上下内边距&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 创建一个框架来放置显示长度文本框和复制按钮&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> frame &lt;span style="color:#f92672">=&lt;/span> tk&lt;span style="color:#f92672">.&lt;/span>Frame(window)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> frame&lt;span style="color:#f92672">.&lt;/span>pack(pady&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 创建显示长度文本框，初始值为空&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> length_entry &lt;span style="color:#f92672">=&lt;/span> tk&lt;span style="color:#f92672">.&lt;/span>Entry(frame)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> length_entry&lt;span style="color:#f92672">.&lt;/span>pack(pady&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">5&lt;/span>) &lt;span style="color:#75715e"># 增加上下内边距&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">copy_text&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> text_to_copy &lt;span style="color:#f92672">=&lt;/span> length_entry&lt;span style="color:#f92672">.&lt;/span>get() &lt;span style="color:#75715e"># 获取要复制的文本内容&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> window&lt;span style="color:#f92672">.&lt;/span>clipboard_clear() &lt;span style="color:#75715e"># 清空剪贴板内容&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> window&lt;span style="color:#f92672">.&lt;/span>clipboard_append(text_to_copy) &lt;span style="color:#75715e"># 将文本内容添加到剪贴板&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 创建一个按钮&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> button_1 &lt;span style="color:#f92672">=&lt;/span> tk&lt;span style="color:#f92672">.&lt;/span>Button(frame, text&lt;span style="color:#f92672">=&lt;/span>\&lt;span style="color:#e6db74">&amp;#34;复制&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">, command=copy_text)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> button_1&lt;span style="color:#f92672">.&lt;/span>pack(pady&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">5&lt;/span>) &lt;span style="color:#75715e"># 增加上下内边距&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 定义按钮点击事件的处理函数&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">update_length&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> input_text &lt;span style="color:#f92672">=&lt;/span> input_entry&lt;span style="color:#f92672">.&lt;/span>get() &lt;span style="color:#75715e"># 获取输入文本&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> num &lt;span style="color:#f92672">=&lt;/span> generate(int(input_text)) &lt;span style="color:#75715e"># 调用generate函数&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> length_entry&lt;span style="color:#f92672">.&lt;/span>delete(&lt;span style="color:#ae81ff">0&lt;/span>, tk&lt;span style="color:#f92672">.&lt;/span>END) &lt;span style="color:#75715e"># 清空长度文本框&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> length_entry&lt;span style="color:#f92672">.&lt;/span>insert(&lt;span style="color:#ae81ff">0&lt;/span>, str(num)) &lt;span style="color:#75715e"># 将生成的密码插入到长度文本框中&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 创建一个按钮&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> button &lt;span style="color:#f92672">=&lt;/span> tk&lt;span style="color:#f92672">.&lt;/span>Button(window, text&lt;span style="color:#f92672">=&lt;/span>\&lt;span style="color:#e6db74">&amp;#34;更新密码&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">, command=update_length)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> button&lt;span style="color:#f92672">.&lt;/span>pack(pady&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">10&lt;/span>) &lt;span style="color:#75715e"># 增加上下内边距&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> window&lt;span style="color:#f92672">.&lt;/span>bind(&lt;span style="color:#66d9ef">lambda&lt;/span> event: button&lt;span style="color:#f92672">.&lt;/span>invoke()) &lt;span style="color:#75715e"># 绑定回车键触发按钮&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 运行主事件循环&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> window&lt;span style="color:#f92672">.&lt;/span>mainloop()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> __name__ &lt;span style="color:#f92672">==&lt;/span> \&lt;span style="color:#e6db74">&amp;#34;__main__&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> create_window()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>python编写kugou下载工具</title><link>https://blog.xialins.cn/posts/migrated/post-174/</link><pubDate>Wed, 17 Sep 2025 02:46:57 +0000</pubDate><guid>https://blog.xialins.cn/posts/migrated/post-174/</guid><description>&lt;h5 id="python">python&lt;/h5>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> hashlib
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> time
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> requests
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> re
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> prettytable &lt;span style="color:#66d9ef">as&lt;/span> pt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">md5_hash&lt;/span>(date, keyword):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> text &lt;span style="color:#f92672">=&lt;/span> [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;appid=1014&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;bitrate=0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;callback=callback123&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">f&lt;/span>&lt;span style="color:#e6db74">&amp;#39;clienttime=&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>date&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;clientver=1000&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;dfid=11S5Hd0E3dhq3jHxZ90dzFYU&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;filter=10&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;inputtype=0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;iscorrection=1&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;isfuzzy=0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">f&lt;/span>&lt;span style="color:#e6db74">&amp;#39;keyword=&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>keyword&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;mid=8b5710fdab09aea0e4649de3e430ad23&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;page=1&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;pagesize=30&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;platform=WebFilter&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;privilege_filter=0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;srcappid=2919&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;token=&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;userid=0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;uuid=8b5710fdab09aea0e4649de3e430ad23&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> string &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;#39;&amp;#39;&lt;/span>&lt;span style="color:#f92672">.&lt;/span>join(text)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 创建 MD5 哈希对象&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> md5 &lt;span style="color:#f92672">=&lt;/span> hashlib&lt;span style="color:#f92672">.&lt;/span>md5()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 更新哈希对象的内容&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> md5&lt;span style="color:#f92672">.&lt;/span>update(string&lt;span style="color:#f92672">.&lt;/span>encode(&lt;span style="color:#e6db74">&amp;#39;utf-8&amp;#39;&lt;/span>))
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># 更新哈希对象的内容&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> signature &lt;span style="color:#f92672">=&lt;/span> md5&lt;span style="color:#f92672">.&lt;/span>hexdigest()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(signature)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> signature
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">save&lt;/span>(music_id):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> link &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;#39;https://wwwapi.kugou.com/yy/index.php&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> params &lt;span style="color:#f92672">=&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;r&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;play/getdata&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># &amp;#39;callback&amp;#39;: &amp;#39;jQuery19105617303032764249_1693890961892&amp;#39;,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;dfid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;11S5Hd0E3dhq3jHxZ90dzFYU&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;appid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;1014&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;mid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;8b5710fdab09aea0e4649de3e430ad23&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;platid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;4&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;encode_album_audio_id&amp;#39;&lt;/span>: music_id,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;_&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;1693890961893&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> link_data &lt;span style="color:#f92672">=&lt;/span> requests&lt;span style="color:#f92672">.&lt;/span>get(url&lt;span style="color:#f92672">=&lt;/span>link, params&lt;span style="color:#f92672">=&lt;/span>params, headers&lt;span style="color:#f92672">=&lt;/span>headers)&lt;span style="color:#f92672">.&lt;/span>json()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> play_url &lt;span style="color:#f92672">=&lt;/span> link_data[&lt;span style="color:#e6db74">&amp;#39;data&amp;#39;&lt;/span>][&lt;span style="color:#e6db74">&amp;#39;play_url&amp;#39;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> audio_name &lt;span style="color:#f92672">=&lt;/span> link_data[&lt;span style="color:#e6db74">&amp;#39;data&amp;#39;&lt;/span>][&lt;span style="color:#e6db74">&amp;#39;audio_name&amp;#39;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name &lt;span style="color:#f92672">=&lt;/span> re&lt;span style="color:#f92672">.&lt;/span>sub(&lt;span style="color:#e6db74">r&lt;/span>&lt;span style="color:#e6db74">&amp;#39;[&lt;/span>&lt;span style="color:#ae81ff">\\&lt;/span>&lt;span style="color:#e6db74">/:\&amp;#34;?*&amp;lt;&amp;gt;|]&amp;#39;&lt;/span>, &lt;span style="color:#e6db74">&amp;#39;&amp;#39;&lt;/span>, audio_name)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> content &lt;span style="color:#f92672">=&lt;/span> requests&lt;span style="color:#f92672">.&lt;/span>get(url&lt;span style="color:#f92672">=&lt;/span>play_url, headers&lt;span style="color:#f92672">=&lt;/span>headers)&lt;span style="color:#f92672">.&lt;/span>content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">with&lt;/span> open(\&lt;span style="color:#e6db74">&amp;#34;./&lt;/span>&lt;span style="color:#ae81ff">\&amp;#34;&lt;/span>&lt;span style="color:#e6db74"> + name + &amp;#39;.mp3&amp;#39;, mode=&amp;#39;wb&amp;#39;) as f:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> f&lt;span style="color:#f92672">.&lt;/span>write(content)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>now_time &lt;span style="color:#f92672">=&lt;/span> int(time&lt;span style="color:#f92672">.&lt;/span>time() &lt;span style="color:#f92672">*&lt;/span> &lt;span style="color:#ae81ff">1000&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>keyword &lt;span style="color:#f92672">=&lt;/span> input(&lt;span style="color:#e6db74">&amp;#39;请输入歌手名字 / 歌曲: &amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>signature &lt;span style="color:#f92672">=&lt;/span> md5_hash(now_time, keyword)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>url &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;#39;https://complexsearch.kugou.com/v2/search/song&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>data &lt;span style="color:#f92672">=&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;callback&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;callback123&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;srcappid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;2919&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;clientver&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;1000&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;clienttime&amp;#39;&lt;/span>: now_time,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;mid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;8b5710fdab09aea0e4649de3e430ad23&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;uuid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;8b5710fdab09aea0e4649de3e430ad23&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;dfid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;11S5Hd0E3dhq3jHxZ90dzFYU&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;keyword&amp;#39;&lt;/span>: keyword,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;page&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;1&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;pagesize&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;30&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;bitrate&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;isfuzzy&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;inputtype&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;platform&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;WebFilter&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;userid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;iscorrection&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;1&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;privilege_filter&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;0&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;filter&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;10&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;token&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;appid&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;1014&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;signature&amp;#39;&lt;/span>: signature,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>headers &lt;span style="color:#f92672">=&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;Referer&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;https://www.kugou.com/&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;User-Agent&amp;#39;&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>response &lt;span style="color:#f92672">=&lt;/span> requests&lt;span style="color:#f92672">.&lt;/span>get(url&lt;span style="color:#f92672">=&lt;/span>url, params&lt;span style="color:#f92672">=&lt;/span>data, headers&lt;span style="color:#f92672">=&lt;/span>headers)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>html_data &lt;span style="color:#f92672">=&lt;/span> re&lt;span style="color:#f92672">.&lt;/span>findall(&lt;span style="color:#e6db74">&amp;#39;callback123\((.*)\)&amp;#39;&lt;/span>, response&lt;span style="color:#f92672">.&lt;/span>text)[&lt;span style="color:#ae81ff">0&lt;/span>]&lt;span style="color:#f92672">.&lt;/span>replace(&lt;span style="color:#e6db74">&amp;#39;)&amp;#39;&lt;/span>, &lt;span style="color:#e6db74">&amp;#39;&amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tb &lt;span style="color:#f92672">=&lt;/span> pt&lt;span style="color:#f92672">.&lt;/span>PrettyTable()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tb&lt;span style="color:#f92672">.&lt;/span>field_names &lt;span style="color:#f92672">=&lt;/span> [&lt;span style="color:#e6db74">&amp;#39;序号&amp;#39;&lt;/span>, &lt;span style="color:#e6db74">&amp;#39;歌手&amp;#39;&lt;/span>, &lt;span style="color:#e6db74">&amp;#39;歌名&amp;#39;&lt;/span>, &lt;span style="color:#e6db74">&amp;#39;专辑&amp;#39;&lt;/span>, &lt;span style="color:#e6db74">&amp;#39;ID&amp;#39;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>lis &lt;span style="color:#f92672">=&lt;/span> []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>num &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>json_data &lt;span style="color:#f92672">=&lt;/span> json&lt;span style="color:#f92672">.&lt;/span>loads(html_data)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">for&lt;/span> index &lt;span style="color:#f92672">in&lt;/span> json_data[&lt;span style="color:#e6db74">&amp;#39;data&amp;#39;&lt;/span>][&lt;span style="color:#e6db74">&amp;#39;lists&amp;#39;&lt;/span>]:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> SingerName &lt;span style="color:#f92672">=&lt;/span> index[&lt;span style="color:#e6db74">&amp;#39;SingerName&amp;#39;&lt;/span>] &lt;span style="color:#75715e"># 歌手&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> SongName &lt;span style="color:#f92672">=&lt;/span> index[&lt;span style="color:#e6db74">&amp;#39;SongName&amp;#39;&lt;/span>] &lt;span style="color:#75715e"># 歌名&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> AlbumName &lt;span style="color:#f92672">=&lt;/span> index[&lt;span style="color:#e6db74">&amp;#39;AlbumName&amp;#39;&lt;/span>] &lt;span style="color:#75715e"># 专辑&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> SongID &lt;span style="color:#f92672">=&lt;/span> index[&lt;span style="color:#e6db74">&amp;#39;EMixSongID&amp;#39;&lt;/span>] &lt;span style="color:#75715e"># ID&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dit &lt;span style="color:#f92672">=&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;歌手&amp;#39;&lt;/span>: SingerName,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;歌名&amp;#39;&lt;/span>: SongName,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;专辑&amp;#39;&lt;/span>: AlbumName,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;ID&amp;#39;&lt;/span>: SongID,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> tb&lt;span style="color:#f92672">.&lt;/span>add_row([num, SingerName, SongName, AlbumName, SongID])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> lis&lt;span style="color:#f92672">.&lt;/span>append(dit)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> num &lt;span style="color:#f92672">+=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(tb)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>page &lt;span style="color:#f92672">=&lt;/span> input(&lt;span style="color:#e6db74">&amp;#39;请输入你要下载的歌曲的序号: &amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">try&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> page &lt;span style="color:#f92672">==&lt;/span> &lt;span style="color:#e6db74">&amp;#39;0&amp;#39;&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">for&lt;/span> li &lt;span style="color:#f92672">in&lt;/span> lis:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> save(music_id&lt;span style="color:#f92672">=&lt;/span>li[&lt;span style="color:#e6db74">&amp;#39;SongID&amp;#39;&lt;/span>])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">else&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> save(music_id&lt;span style="color:#f92672">=&lt;/span>lis[int(page)&lt;span style="color:#f92672">-&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>][&lt;span style="color:#e6db74">&amp;#39;ID&amp;#39;&lt;/span>])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">except&lt;/span> &lt;span style="color:#a6e22e">Exception&lt;/span> &lt;span style="color:#66d9ef">as&lt;/span> e:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#e6db74">&amp;#39;输入有问题&amp;#39;&lt;/span>, e)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item></channel></rss>