我正在使用BeautifulSoup python库。 我使用urllib2库从页面下载HTML代码,然后我用BeautifulSoup解析它。 我想将一些HTML内容保存到MySql表中,但我在编码时遇到了一些问题。 MySql表使用'utf-8'charset编码。
一些例子:
当我下载HTML代码并使用BeautifulSoup解析时,我有类似的内容:
"Ver las \xc3\xbaltimas noticias. Ent\xc3\xa9rate de las noticias de \xc3\xbaltima hora con la mejor cobertura con fotos y videos"
正确的文字是:
"Ver las últimas noticias. Entérate de las noticias de última hora con la mejor cobertura con fotos y videos"
我尝试使用多个字符集对该文本进行编码和解码,但是当我将其插入MySql时,我有一些喜欢:
"Ver las últimas noticias y todos los titulares de hoy en Yahoo! Noticias Argentina. Entérate de las noticias de última hora con la mejor cobertura con fotos y videos"
我遇到编码问题,但我不知道如何解决它们。
有什么建议吗?
答案 0 :(得分:3)
您有正确的UTF-8数据来自BeautifulSoup,但它存储在普通的字符串类型中,而不是python的本机unicode字符串类型。我认为这就是你需要做的事情:
codecs.decode(your_string, 'utf-8')
然后字符串应该是正确的数据类型和编码发送到mysql。
一个例子:
>>> codecs.decode("Ver las \xc3\xbaltimas noticias. Ent\xc3\xa9rate de las noticias de \xc3\xbaltima hora con la mejor cobertura con fotos y videos", 'utf-8')
u'Ver las \xfaltimas noticias. Ent\xe9rate de las noticias de \xfaltima hora con la mejor cobertura con fotos y videos'
>>> print _
Ver las últimas noticias. Entérate de las noticias de última hora con la mejor cobertura con fotos y videos
答案 1 :(得分:2)
BeautifulSoup将所有数据作为unicode字符串返回。首先检查unicode字符串是否正确。如果没有,则输入数据的编码存在一些问题。