这个问题是我之前的一个发问 通过了两三天的钻研终于解决了
背景:

import requestsfrom lxml import etree    url = "https://music.163.com/discover/toplist?id=3779629"    headers = {        'User-Agent': "PostmanRuntime/7.15.2",        }    response = requests.request("GET", url, headers=headers)    '''    ”<”、”&”    '''    r = etree.HTML(response.text)    l = r.xpath("//textarea[@id='song-list-pre-data']/text()")    print(l)

最终输入(支只复制了最初一段):
lLevel":"exhigh","pl":320000},"djid":0,"fee":0,"album":{"id":158052587,"name":"Sakana~( >ㅿㅿ\n']
失常来说 这个xpath语句 是匹配到一个残缺的json模式数据 然而遇到了特殊符号 就在特殊符号处匹配完结了 导致信息拿不全


解决办法:
应用 bs4解析包(由查阅相干材料,stackoverflow 网评bs4比xpath在某些非凡场景更强壮)

并且留神soup = BeautifulSoup(response.text, "lxml")

的参数肯定不要应用 lxml 要应用 html.parser

最终代码:

import requestsfrom bs4 import BeautifulSoupurl = "https://music.163.com/discover/toplist?id=3779629"headers = {'user-agent': "PostmanRuntime/7.15.2"}response = requests.request("GET", url, headers=headers)soup = BeautifulSoup(response.text, "html.parser")textarea = soup.find('textarea', attrs={'id': 'song-list-pre-data'}).get_text()print(textarea)

最终输入能够拿到残缺的str用于json化