BeautifulSoup没有正确显示韩语字母



我是Python的新手,正在学习BeautifulSoup解析。

这是我的代码,

#-*- coding: utf-8 -*-
import urllib
from bs4 import BeautifulSoup
soup = BeautifulSoup(urllib.urlopen('https://news.google.com/news/section?cf=all&pz=1&q=IoT').read())
editData = soup.find_all('span',{'class','titletext'})
print editData

结果如下:(朝鲜语字母显示为"\uc720\ud50c\ub7ec\uc2a4"等)

[LG\uc720\ud50c\ub7ec\uc2a4,IoT \ub9dd\uc911\uc18c\uae30\uc5c5\uba8\uc5ec\ub77c',"物联网\ub85c\uace0\uce35\ub4c\ub529\uc5d0\ub108\uc9c0\uc18c\ub44 80%\u2193",\uc2dc\ud050\ub9ac\ud2f0\ud50c\ub7ab\ud3fc-\uc774\ub354\ube14\uc720\ube44\uc5e0IoT uba8\ud22c\uc790,IoT\ub9db\uc744\uc54c\uac8c\ub41c\ud1b5\uc2e03\uc0ac,'\uc1\uc0dd'\uc774\uacb0\uad6d\ubf8\ub798\ub9cc\ub4e0\ub2e4,\uc0bc\uc131\uc804\uc790,\ubd81\ubf8 <b>IoT</b> uc2a4ub9c8ud2b8 ube4cub529 ucf00uc5b4 uc2dcuc2a4ud15c\uacf5\ub7b5…\ud604\uc9c0\ub370\uc778\ud2b8\ub9ac\uc640\ud611\uc5c5,\ud30c\uc6cc\ubcf4\uc774\uc2a4,\uc74c\uc131\uc778\uc2dIoT \uace0\ub824\ub300,\uc815\ubcf4\ud1b5\uc2e0\uace0\ub3c4\ud654\ud55c'IoT\ucea0\ud37c\uc2a4'\ucc0\uc2e0,

等等

关于这个问题,我找不到任何解决办法。

这不是因为BeautifulSoup,而是因为打印节点的方式。做一些类似的事情:

print editData

将调用节点的函数__repr__(),该函数通过将内容作为ascii字符串返回来实现。

试试这个:

for span in editData:
    print span.text

您应该看到unicode文本(for in循环是因为结果是节点列表,而不是单个节点,所以我们将它们全部打印出来)。

最新更新