Python 报错 : UnicodeDecodeError: el códec 'utf8' no puede decodificar el byte 0xa4 en la posición 712: byte de inicio no válido

        Al rastrear una página web, los datos se pueden eliminar y se informará un error durante el análisis final:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xa4 in position 712: invalid start byte

        Significa que al analizar, se produce un error cuando se analizan 712 caracteres utilizando el formato de codificación utf8. Vaya a la página web original F12 e ingrese: document.charset en la consola. El resultado devuelto es GBK, lo que indica que el formato de codificación de la web La página es GBK, por lo que el análisis de clase GBK debe usarse en Python. El hiper que uso aquí es utf8 por defecto. Agregué parámetros para evitar que el hiper se analice por mí:

conn = HTTPConnection('www.hkex.com.hk:443')

conn.request('GET', '/chi/stat/smstat/dayquot/d210219c.htm', None, None)
resp = conn.get_response()
s = resp.read(decode_content=False)

        Puede agregar decodificación (codificación = 'UTF-8', errores = 'ignorar') a los datos de lectura de respuesta, analizarlos en utf8 y omitir el lugar del error:

conn = HTTPConnection('www.hkex.com.hk:443')

conn.request('GET', '/chi/stat/smstat/dayquot/d210219c.htm', None, None)
resp = conn.get_response()
s = resp.read(decode_content=False).decode(encoding='UTF-8', errors='ignore')

        Pero es mejor analizarlo de acuerdo con los datos de la página web original, es decir, convertirlo a GBK:

conn = HTTPConnection('www.hkex.com.hk:443')

conn.request('GET', '/chi/stat/smstat/dayquot/d210219c.htm', None, None)
resp = conn.get_response()
s = resp.read(decode_content=False).decode(encoding='GBK', errors='ignore')

 

Supongo que te gusta

Origin blog.csdn.net/qq_41061437/article/details/113988940
Recomendado
Clasificación