.prettify()python 3中的unicode错误

2024-09-30 16:22:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用请求和BeautifulSoup4包来抓取网站。在

>>>import requests
>>>from bs4 import BeautifulSoup

>>>r = requests.get('https://www.yellowpages.com/search?search_terms = coffee&geo_location_terms=Los+Angeles%2C+CA')

>>>r.content #shows source code (mess) bytes type

>>>soup = BeautifulSoup(r.content,'html.parser')

当我试图用

print(soup.prettify())

我知道错误了

^{pr2}$

我也试过了

>>>soupbytes = soup.prettify(encoding = 'utf-8') #this is bytes format
>>>soupstr = soupbytes.decode('utf-8') #this is str format

对于第一个,打印(print(soupbytes))没有任何问题,但是它不打印文本'pretty',它是字节格式。如果我试图打印第二个(print(soupstr)),我会再次得到错误,但是我得到的对象是str类型的。在

我还得说,我在IDE(spyder)中没有发现任何错误。也就是说,如果我在spyder中运行下一个代码:

import requests
from bs4 import BeautifulSoup

r = requests.get('https://www.yellowpages.com/search?
search_terms=coffee&geo_location_terms=Los+Angeles%2C+CA')

r.content #muestra html de la pagina
soup = BeautifulSoup(r.content,'html.parser')
print(soup.prettify())

我没有任何错误。 为什么会有这种区别?我怎样才能避免终端出错呢???在


Tags: fromimportsearchgethtml错误contentprettify