大家。
对于我的研究项目,我收集了一些网页。
例如,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 (" <", 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
如何准确打印名称?
答案 0 :(得分:0)
好吧......这会做你想做的事情
author = 'Мирослав Николић'
print author.decode('utf8') # Мирослав Николић
但如果编码不是UTF8,它也不会起作用......
大多数情况下使用utf8。大多。
Unicode是一个复杂的东西,让你的头脑。 'author'是一个包含字节的字符串对象。这些字节中没有信息告诉您这些字节代表什么。绝对没有。你必须告诉Python这个字节串是UTF8中的代码点。对于您遇到的每个字节,请在UTF8代码表中查找它,并查看它代表的UTF8 unicode字形。
您可以通过查看元标记来检测每个页面的编码。在html5中,它们看起来像这样:
<meta charset="utf-8">.