Python 用刮刀刮特殊字符

Python 用刮刀刮特殊字符,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我正在用丹麦语刮一页纸。我的输出有问题。输出包含许多特殊字符,如(Ã¥,Ã,Ã¥,Ã),与页面上的不同 我怎样才能像在页面上一样刮取文本 示例链接: 您可以在get()或getall()之后添加.encode('utf8') Scrapy将数据提取为unicode字符串,这可能会帮助您了解有关unicode和UTF-8的abit 您可以在get()或getall()之后添加.encode('utf8') Scrapy将数据提取为unicode字符串,这可能会帮助您了解有关unicode和UTF-

我正在用丹麦语刮一页纸。我的输出有问题。输出包含许多特殊字符,如
(Ã¥,Ã,Ã¥,Ã)
,与页面上的不同

我怎样才能像在页面上一样刮取文本

示例链接:


您可以在
get()
getall()之后添加
.encode('utf8')

Scrapy将数据提取为unicode字符串,这可能会帮助您了解有关unicode和UTF-8的abit


您可以在
get()
getall()之后添加
.encode('utf8')

Scrapy将数据提取为unicode字符串,这可能会帮助您了解有关unicode和UTF-8的abit


丹麦编解码器是
cp865
检查所有可用的编解码器

NB:只有在你的英文网站上使用
ascii

def string_cleaner(rouge_text):
    return ("".join(rouge_text.strip()).encode('cp865', 'ignore').decode("cp865"))
使用
ignore
忽略错误

用法

 yield {
                "Name": string_cleaner(name),
                ...
            }

更多关于代码功能的解释请检查我的代码分解

丹麦编解码器是
cp865
检查所有可用的编解码器

NB:只有在你的英文网站上使用
ascii

def string_cleaner(rouge_text):
    return ("".join(rouge_text.strip()).encode('cp865', 'ignore').decode("cp865"))
使用
ignore
忽略错误

用法

 yield {
                "Name": string_cleaner(name),
                ...
            }

更多关于代码的解释请查看我的代码分解

您使用哪种python版本?我强烈建议您切换到python3,它将解决您在unicode符号方面的大部分问题。我使用的是python3.7,我在selenium中尝试了utf-8,但它不起作用,但当我删除utf-8编码时,输出与网站相同。那么,你知道我怎么能用scrapy忽略utf-8编码吗?3.7很好。还有一个问题:你的产出是多少?我是说你在哪里看到破碎的符号?你是否可以刮到文件/屏幕/数据库?是的,我用excel打开了文件。无论如何,非常感谢。我将JSON文件转换为Excel,它对我有效。您使用哪种python版本?我强烈建议您切换到python3,它将解决您在unicode符号方面的大部分问题。我使用的是python3.7,我在selenium中尝试了utf-8,但它不起作用,但当我删除utf-8编码时,输出与网站相同。那么,你知道我怎么能用scrapy忽略utf-8编码吗?3.7很好。还有一个问题:你的产出是多少?我是说你在哪里看到破碎的符号?你是否可以刮到文件/屏幕/数据库?是的,我用excel打开了文件。无论如何,非常感谢。我将JSON文件转换为Excel,它对我有效。不幸的是,这不起作用。我用selenium和utf-8进行了尝试,但它不起作用,但当我删除utf-8编码时,输出与网站相同。那么,你知道我怎么能用scrapy忽略utf-8编码吗?不幸的是,这不起作用。我用selenium和utf-8进行了尝试,但它不起作用,但当我删除utf-8编码时,输出与网站相同。那么,你知道我怎么能用scrapy忽略utf-8编码吗?这个方法完全跳过了字母。NORDJYSK DØgngaving AKTIESELSKAB至NORDJYSK DGNGALVANISERING AKTIESELSKAB已跳过以下字母Ø使用丹麦代码
cp865
而非英语
ascii
。更新了答案此方法完全跳过了字母。NORDJYSK DØgngaving AKTIESELSKAB至NORDJYSK DGNGALVANISERING AKTIESELSKAB已跳过以下字母Ø使用丹麦代码
cp865
而非英语
ascii
。更新了答案