【发布时间】:2017-08-05 12:25:37
【问题描述】:
我正在编写一个从网站检索信息的简单 python 程序,问题是有些单词包含特殊字符,例如 “°”、“Ψ”等等。
这是我的代码:
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import urllib
r = urllib.urlopen('http://www.samplepage.sample').read()
soup = BeautifulSoup(r, "lxml")
text = soup.find_all("a", class_="some_class")
for word in text:
word = word.get_text()
word = word.encode('utf-8')
print word
输出应该是“°”,但不是那个,而是“°”
如果我尝试使用 ascii 对其进行编码,我会得到经典的 UnicodeEncodeError:
for word in text:
word = word.get_text()
word = word.encode('ascii')
print word
>>> UnicodeEncodeError: 'ascii' codec can't encode characters in position 7-8:
ordinal not in range(128)
有什么想法吗?
【问题讨论】:
-
这里的 samplepage.sample 是什么?
-
任何网页都可以
-
在您提供 url 之前,我们无法看到您脚本的输出
-
输出应该是“°”,但我得到的是“°”
-
我怎么知道输出应该是
°或°?
标签: python beautifulsoup ascii encode