在使用requests.get(url,headers=header)时同时提示如下错误:
'latin-1' codec can't encode character '\u2026' in position 512: ordinal not in ?
不知道是什么原因?
已经在返回数据中做了字符编码设定,但是还是报相同的错误
代码如下:
response=requests.get(url, headers=headers)
response.encoding='utf-8'
html=lxml.etree.HTML(response.text)headers的内容如下:
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language':'zh-CN,zh;q=0.9,zh-TW;q=0.8,zh-HK;q=0.7,en-US;q=0.6,en;q=0.5',
'Connection':'keep-alive',
'Host':'items.xxx.com',
'Priority':'u=0, i',
'Referer':'https://www.xxx.com/',
'Sec-Fetch-Dest':'document',
'Sec-Fetch-Mode':'navigate',
'Sec-Fetch-Site':'same-site',
'Sec-Fetch-User':'?1',
'TE':'trailers',
'Upgrade-Insecure-Requests':'1',
'cookie':'...‘
}不能识别"..."应该怎么处理
最后一行引号错了。
前面是 ' (标准单引号),后面是 ‘ (中文弯引号),Python 认不出来,字符串没闭合,后面解析乱了才报编码错误。
改成:
两个都用英文单引号 ' 。
这种错误一般是复制粘贴浏览器开发者工具里的内容,或者输入法没切换导致的。手动敲一遍最保险。