Python错误:';utf8';编解码器可以';在位置85处对字节0x92进行解码:起始字节无效

Python错误:';utf8';编解码器可以';在位置85处对字节0x92进行解码:起始字节无效,python,web-scraping,lxml,Python,Web Scraping,Lxml,我正在使用python2.7和lxml。我的代码如下 import urllib from lxml import html def get_value(el): return get_text(el, 'value') or el.text_content() response = urllib.urlopen('http://www.edmunds.com/dealerships/Texas/Frisco/DavidMcDavidHondaofFrisco/fullsales-5

我正在使用python2.7和lxml。我的代码如下

import urllib
from lxml import html

def get_value(el):
    return get_text(el, 'value') or el.text_content()

response = urllib.urlopen('http://www.edmunds.com/dealerships/Texas/Frisco/DavidMcDavidHondaofFrisco/fullsales-504210667.html').read()
dom = html.fromstring(response)

try:
    description = get_value(dom.xpath("//div[@class='description item vcard']")[0].xpath(".//p[@class='sales-review-paragraph loose-spacing']")[0])
except IndexError, e:
    description = ''
代码在try中崩溃,给出了一个错误

UnicodeDecodeError at /
'utf8' codec can't decode byte 0x92 in position 85: invalid start byte
无法编码/解码的字符串为:ouldn�不可能

我尝试过使用很多技术,包括.encode('utf8'),但都不能解决这个问题。我有两个问题:

  • 如何解决这个问题
  • 当问题代码介于两次尝试之间时,我的应用程序如何崩溃
    • 错误时跳过字符,或将其正确解码为unicode
    • 您只捕获索引器错误,而不捕获UnicodeDecodeError
    • 错误时跳过字符,或将其正确解码为unicode
    • 您只捕获索引器错误,而不捕获UnicodeDecodeError

  • except子句只处理索引器类型的异常。问题是UnicodeDecodeError,它不是索引器-因此该异常不由except子句处理


    “get_value”的作用也不清楚,这很可能是实际问题产生的原因。

    您的except子句只处理索引器类型的异常。问题是UnicodeDecodeError,它不是索引器-因此该异常不由except子句处理

    “get_value”的作用也不清楚,这很可能是实际问题产生的原因

  • 解码对unicode的响应,在使用fromhtml解析之前正确处理错误(错误时忽略)

  • 捕获UnicodeDecodeError或所有错误

  • 解码对unicode的响应,在使用fromhtml解析之前正确处理错误(错误时忽略)

  • 捕获UnicodeDecodeError或所有错误


  • 正在使用
    charset=ISO-8859-1
    提供该页面。将其解码为unicode


    [

    该页面正在使用
    charset=ISO-8859-1
    提供。请将其解码为unicode


    [

    发布整个回溯,而不仅仅是回溯的最后一行。为@Marcin的答案创建快照。检查网页的编码对于调试编码错误非常有用。[![在此处输入图像描述][1]][1]:发布整个回溯,而不仅仅是回溯的最后一行。为@Marcin的答案创建快照。检查网页的编码对于调试编码错误非常有用。[![在此处输入图像描述][1]][1]:答案不是捕获所有错误。这就是你在程序中隐藏错误的方式。答案不是捕获所有错误。这就是你在程序中隐藏错误的方式。@mangobug除非你显示包括解码调用在内的实际代码,否则没有人能帮你。@mangobug除非你显示包括解码调用在内的实际代码,否则没有人能帮你有了它。这没有多大帮助,因为现在我们只有一个我们不了解的“获取文本”函数。我们也没有完整的回溯。你需要提供完整的上下文,否则人们只能猜测问题。这没有多大帮助,因为现在我们只有一个我们不了解的“获取文本”函数。我们没有你需要提供完整的上下文,否则人们只能猜测问题。