阅读网页,包括俄语,韩语等各种语言

时间:2012-05-18 12:03:13

标签: python

大家。

对于我的研究项目,我收集了一些网页。

例如,http://git.gnome.org/browse/anjuta/commit/?id=d17caca8f81bb0f0ba4d341d6d6132ff51d186e3

正如您在上面的网页上看到的那样,提交者的名字不是英文。

其他网页也有以各种语言而非英文写的提交者名称。

以下代码用于处理提交者的名称。

import csv
import re
import urllib

def get_page (link):
    k = 1
    while k == 1:
        try:
            f = urllib.urlopen (link)
            htmlSource = f.read()
            return htmlSource
        except EnvironmentError:
            print ('Error occured:', link)
        else:
            k = 2
    f.close()

def get_commit_info (commit_page):
    commit_page_string = str (commit_page)


    author_pattern = re.compile (r'<tr><th>author</th><td>(.*?)</td><td class=', re.DOTALL)
    t_author = author_pattern.findall (commit_page_string)

    t_author_string = str (t_author)
    author_point = re.search (" &lt;", t_author_string)
    author = t_author_string[:author_point.start()]

    print author

git_url = "http://git.gnome.org/browse/anjuta/commit/?id=d17caca8f81bb0f0ba4d341d6d6132ff51d186e3"
commit_page = get_page (git_url)
get_commit_info (commit_page)

'print author'的结果如下:

\ xd0 \ x9c \ xd0 \ xb8 \ xd1 \ x80 \ xd0 \ xbe \ xd1 \ x81 \ xd0 \ xbb \ xd0 \ xb0 \ xd0 \ xb2 \ xd0 \ x9d \ xd0 \ XB8 \ XD0 \ XBA \ XD0 \ XBE \ XD0 \ XBB \ XD0 \ XB8 \ XD1 \ x9b

如何准确打印名称?

1 个答案:

答案 0 :(得分:0)

好吧......这会做你想做的事情

author = 'Мирослав Николић'
print author.decode('utf8') # Мирослав Николић

但如果编码不是UTF8,它也不会起作用......

大多数情况下使用utf8。大多。

Unicode是一个复杂的东西,让你的头脑。 'author'是一个包含字节的字符串对象。这些字节中没有信息告诉您这些字节代表什么。绝对没有。你必须告诉Python这个字节串是UTF8中的代码点。对于您遇到的每个字节,请在UTF8代码表中查找它,并查看它代表的UTF8 unicode字形。

您可以通过查看元标记来检测每个页面的编码。在html5中,它们看起来像这样:

<meta charset="utf-8">.