我需要关于我正在写的刮刀的帮助。我正在尝试抓取大学排名表,其中一些学校是欧洲大学,名称中有外国字符(例如ä,ü)。我已经以完全相同的方式与外国大学在另一个网站上刮了另一张桌子,一切正常。但是由于某种原因,当前的刮板无法处理外来字符(就解析外来字符而言,两个刮板完全相同)。
这是我正在做的尝试并使事情正常进行的工作:
在文件的第一行声明编码:
# -*- coding: utf-8 -*-
从 django.utils.encoding 导入和使用来自 django 框架的智能 unicode import smart_unicode
school_name = smart_unicode(html_elements[2].text_content(), encoding='utf-8', strings_only=False, errors='strict').encode('utf-8')
当与 smart_unicode 函数链接时,使用 encode 函数,如上所示。我想不出我还能做错什么。在和这些爬虫打交道之前,我对不同的编码真的不是很了解,所以还是有点大开眼界的体验。我已尝试阅读以下内容,但仍然无法解决此问题
我知道在编码中,每个字符都分配有一个数字,可以用十六进制、二进制等表示。不同的编码对于它们支持的语言有不同的能力(例如 ASCII 只支持英语,UTF-8 支持它看起来的一切.但是,我觉得我正在尽一切努力确保正确打印字符。我不知道我的错误在哪里,这让我发疯了。请帮助!