我正在嘗試一個簡單的python練習。代碼片段來自本網站和開放源代碼。目標是解析一個網頁並提取頁面中的一些文本。該程序如下所示,使用python3並將輸出重定向到一個文件。但該文件沒有保存我想要的正確信息,也就是說,它沒有顯示中文字符,而是使用像「\ u514d \ u8d39 \ u4e0b \ u8f7d」這樣的unicode。我如何正確地做到這一點?對於Python 3程序無法顯示中文字符
import sys, urllib.request
import traceback
from bs4 import BeautifulSoup
url = "http://appstore.huawei.com/more/all"
def uprint(*objects, sep=' ', end='\n', file=sys.stdout):
enc = file.encoding
if enc == 'UTF-8':
print(*objects, sep=sep, end=end, file=file)
else:
f = lambda obj: str(obj).encode(enc, errors='backslashreplace').decode(enc)
print(*map(f, objects), sep=sep, end=end, file=file)
def crawl():
req = urllib.request.Request(url)
req.add_header('User-Agent', 'PyCrawler 0.2.0')
data = urllib.request.urlopen(req).read()
soup = BeautifulSoup(data, 'lxml')
items_entry = soup.find_all(class_="list-game-app dotline-btn nofloat")
for item in items_entry:
title_tag = item.find_all("h4", class_="title")
for title in title_tag:
title_A = item.find_all("a")
for title_a_item in title_A:
output = str(title_a_item.string)
uprint(output)
print(u"Finishing...")
if __name__ == "__main__":
crawl()
你在哪裏運行(控制檯/空閒)? – Uriel
@Uriel Eli Windows 7 cmd行:python test.py> test.txt並檢查txt文件 – wason