作者:zhefu | 来源:互联网 | 2023-09-06 04:01
使用BeautifulSoup中的find_all方法输出中文乱码,为ASCII码,但输出是一个对象,不能使用decode()和encode(),不知该如何转换
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| #coding:utf-8
import urllib2
from sgmllib import SGMLParser
from bs4 import BeautifulSoup
import re
import sys
reload(sys)
sys.setdefaultencoding('utf8')
soup=BeautifulSoup(open('test.html'),"lxml")
s=soup.find_all("title")
print s |
输出如下:
当使用decode()方法时,报错如下:
1 2 3 4 5
| Traceback (most recent call last):
File "G:\Work\code\python\3.py", line 13, in
print s.decode()
AttributeError: 'ResultSet' object has no attribute 'decode'
[Finished in 0.8s with exit code 1] |
在官方文档中也有这么一句话:
如果传入字节码参数,Beautiful Soup会当作UTF-8编码,可以传入一段Unicode 编码来避免Beautiful Soup解析编码出错
小白一枚,实在不知该如何该如何传入一段Unicode 编码来避免Beautiful Soup解析编码出错,希望有大神告知,感激不敬!