通过Python 2.7从html读取多语言字符串

时间:2013-09-15 08:38:41

标签: python-2.7 beautifulsoup url-encoding

我是python 2.7中的新手,我试图从html文件中提取一些信息。更具体地说,我想阅读一些包含多语言信息的文本信息。我让脚本跳跃让事情变得更清晰。

import urllib2
import BeautifulSoup

url = 'http://www.bbc.co.uk/zhongwen/simp/'

page = urllib2.urlopen(url).read().decode("utf-8")
dom = BeautifulSoup.BeautifulSoup(page)
data = dom.findAll('meta', {'name' : 'keywords'})

print data[0]['content'].encode("utf-8")

我正在采取的结果是

BBCϊ╕φόΨΘύ╜ΣΎ╝Νϊ╕╗ώκ╡Ύ╝Νbbcchinese.com, email news, newsletter, subscription, full text

问题出在第一个字符串中。有什么方法可以打印我正在阅读的内容吗?还有什么办法可以找到每个脚本语言的确切编码吗?

PS :我想提一下该网站是完全随机选择的,因为它代表了我遇到的问题。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您输出结果的终端有问题。该脚本工作正常,如果您将数据输出到文件,您将得到正确的。

示例:

import urllib2
from bs4 import BeautifulSoup

url = 'http://www.bbc.co.uk/zhongwen/simp/'

page = urllib2.urlopen(url).read().decode("utf-8")
dom = BeautifulSoup(page)
data = dom.findAll('meta', {'name' : 'keywords'})

with open("test.txt", "w") as myfile:
    myfile.write(data[0]['content'].encode("utf-8"))

<强>的test.txt:

BBC中文网,主页,bbcchinese.com, email news, newsletter, subscription, full text  

您正在使用哪个操作系统和终端?