(1)代码区:
import requests import urllib.parse import urllib.request import re ''' 服务器返回数据的文档类型是:text/xml 这类我们称为API接口 ''' can_data_list={'uin':'1046864811','json':'2','g_tk':'1916754934'} get_data=urllib.parse.urlencode(can_data_list) #########编译附加上url的python字典数据参数信息 return_msg=urllib.request.urlopen("http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?%s" % (get_data)) print("解析后的url地址:",return_msg.url) info=return_msg.read()#########返回的是byte字节流数据 print("响应状态:",return_msg.status) ###print(return_msg.getheaders()) heads_list=return_msg.getheaders() for key_n,value_d in heads_list: if key_n == 'Content-type': print('解析获取服务器返回头信息(响应文档类型和编码):',value_d) searchobj=re.search(r'=.+',value_d) ###print(searchobj.group()) sub_searchobj=re.search(r'[^=]+',searchobj.group())########匹配不是“=”的所有字符 print("解析响应文档的字符编码:",sub_searchobj.group()) print("远程服务器搭建web服务器的名称是:",return_msg.getheader('Server')) print(info.decode(sub_searchobj.group()))
(2) 输出结果:
解析后的url地址: http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?uin=1046864811&json=2&g_tk=1916754934
响应状态: 200
解析获取服务器返回头信息(响应文档类型和编码): text/xml;charset=gb2312
解析响应文档的字符编码: gb2312
远程服务器搭建web服务器的名称是: QZHTTP-2.38.37
<?xml version="1.0" encoding="gb2312"?>
<qqmusic>
<curtime>1551839193</curtime>
<issmarter>0</issmarter>
<xmusicnum>1</xmusicnum><picurl></picurl><playlist><song><xqusic_mid><![CDATA[003vdgbG2XqNun ]]></xqusic_mid>
<xqusic_id>474125</xqusic_id>
<xctype>3</xctype>
<xexpire_time>0</xexpire_time>
<xdesc><![CDATA[ ]]></xdesc>
<xsong_name><![CDATA[无赖正义 ]]></xsong_name>
<xsinger_name><![CDATA[赵又廷 ]]></xsinger_name>
<xsong_url><![CDATA[http://stream6.qqmusic.qq.com/12474125.wma ]]></xsong_url>
<xsong_size>0</xsong_size>
<xsong_playtime>297</xsong_playtime>
<xsong_diskname><![CDATA[痞子英雄 电视原声合辑 ]]></xsong_diskname>
<xsong_dissmid><![CDATA[0049VMMS2UBeFN ]]></xsong_dissmid>
<xsong_dissid>38414</xsong_dissid>
<xis_word>0</xis_word>
<xcopy_right>0</xcopy_right>
<xsinger_id>15964</xsinger_id>
<xsinger_mid><![CDATA[004HsNIm0Ygjly ]]></xsinger_mid>
<xsong_dissmid><![CDATA[0049VMMS2UBeFN ]]></xsong_dissmid>
</song></playlist><systemtime>1551839193</systemtime>
</qqmusic>