1.network:记录当前页面所发生的请求(点F12打开)
XHR:一种不借助刷新网页即可传输数据的对象,ajax技术
DOC:第0个请求一般在这里
上面的例子:
1.参数放在params里,可以实现循环
2.请求头放在headers里,有些服务会反爬虫,可以修改请求头假装是服务器请求
2.返回的数据为json
例子:
import requests
import json,time
#引用requests模块
url = 'https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_yqq.fcg'
commentid='song_97773_2799571269_1583498452'
headers = {
'origin':'https://y.qq.com',
# 请求来源,本案例中其实是不需要加这个参数的,只是为了演示
'referer':'https://y.qq.com/n/yqq/song/001zMQr71F1Qo8.html',
# 请求来源,携带的信息比“origin”更丰富,本案例中其实是不需要加这个参数的,只是为了演示
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
# 标记了请求从什么设备,什么浏览器上发出
}
for x in range(2):
params = {
'nobase64': '1',
'musicid': '718477',
'-': 'jsonp1',
'g_tk': '5381',
'loginUin': '0',
'hostUin': '0',
'format': 'json',
'inCharset': 'utf8',
'outCharset': 'utf-8',
'notice': '0',
'platform': 'yqq.json',
'needNewCode': '0'
}
# 将参数封装为字典
res_music = requests.get(url,headers=headers,params=params)
print(res_music.status_code)
res_music.encoding='utf-8'
json_music=res_music.json()
print(type(json_music))
# print(json_music['lyric'])
lyrics=json_music['lyric'].split('[')
for i in lyrics:
info=i[17:].replace('
', '').replace(' ', '').replace(';', '')
print(info)