关于Python BeautifulSoup输出编码(使用Python 3.4.4):BeautifulSoup输出编码:如何结合soup.p.encode(“utf-8”)与soup.select('a')&.getText()
如何结合soup.p.encode(“utf-8”)与soup.select('a')& .getText()?
I.e.我可以做两个之一,但不知道如何做两个... - >我想使用soup.p.encode(“utf-8”),因为例如,在我的输出中,“Aloë”会另外转换为“alo?”。
但我也想使用汤对象(类型:)通过“soup.select('a')和”.getText()“来选择href对象。如果我做了soup.p.encode “utf-8”)首先这是不可能的,因为我得到“AttributeError:'字节'对象没有'select'属性。
但是,似乎一旦我将汤对象转换为一个列表,然后是一个字符串,那么获取UTF-8字符为时已晚?例如。 text = text.decode('utf-8')不起作用。我真的可以请一些建议!
FYI我的代码:
import requests, bs4
res = requests.get(url)
try:
res.raise_for_status()
except Exception as exc:
print('There was a problem: %s' % (exc))
soup = bs4.BeautifulSoup(res.text,"html.parser", from_encoding="UTF-8")
#soup = soup.encode("utf-8")
#type: <class 'bs4.BeautifulSoup'>
#print(soup.original_encoding) -> None...
aElems = soup.select('a')
#type: <class 'list'>
lengthElems = len(aElems)
for i in range (0, lengthElems):
text = aElems[i].getText()
#text = text.decode('utf-8')
link = aElems[i].get('href')
FYI作为一种解决方法我现在已经做了搜索,并在下面的代码我输出到Excel文件替换 - 字符组合:áá 谩¢L A §,C éé A E ëë A®î II I A±ñ A²ò A 3ó öö 那张ü úU Ãïï à Ä... – Wouter