gpt4 book ai didi

python - Scrapy XPath 选择器文本的 Unicode 和 UTF-8 编码问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:30 24 4
gpt4 key购买 nike

我正在使用 Scrapy 和 Python(作为 Django 项目的一部分)来抓取包含德语内容的网站。我安装了 libxml2 作为 Scrapy 选择器的后端。

如果我通过选择器提取单词 'Hüftsitz'(这是它在网站上的显示方式),我得到:u'H\ufffd\ufffdftsitz' (Scrapy XPath 选择器返回 Unicode 字符串)。

如果我将其编码为 UTF-8,我会得到:'H\xef\xbf\xbd\xef\xbf\xbdftsitz'。如果我打印它,我会得到 'H??ftsitz',这是不正确的。我想知道为什么会这样。

站点上的character-set 设置为UTF-8。我正在将 sys.getdefaultencoding 设置为 UTF-8 的 Python shell 上测试上述内容。使用 Django 应用程序,其中来自 XPath 选择器的数据被写入具有 UTF-8 字符集的 MySQL 数据库,我看到了相同的行为。

我是不是忽略了一些明显的东西?任何线索或帮助将不胜感激。

最佳答案

u'\ufffd' 是 "unicode replacement character" , 通常打印为黑色三角形内的问号。不是你的元音变音。所以问题一定出在上游的某个地方。检查网页标题所说的正在返回的编码,并验证它实际上是它所说的。

unicode 替换字符通常被插入作为非法或无法识别的字符的替换,这可能是由多种原因引起的,但最有可能的是编码不是它声称的那样。

关于python - Scrapy XPath 选择器文本的 Unicode 和 UTF-8 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5627868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com