0

私は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 : このサイトは、私が直面している問題を代表するものであるため、完全にランダムに選択されたことに言及したいと思います。

前もって感謝します!

4

1 に答える 1

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  

使用しているOSと端末は?

于 2013-09-16T05:25:55.203 に答える