BeautifulSoup encoding.bytes没有名为find_all的属性?

时间:2016-07-04 10:05:49

标签: python encoding utf-8 beautifulsoup

 `self.urlOpen=urllib.request.urlopen("http://facebook.com")
  self.content=self.urlOpen.read()
  soup=BeautifulSoup(self.content,"html5lib")
  self.links=soup.find_all("a")`
  

'charmap'编解码器无法对字符进行编码....

所以当我尝试编码汤变量时     self.urlOpen=urllib.request.urlopen("http://facebook.com") self.content=self.urlOpen.read() soup=BeautifulSoup(self.content,"html5lib") soup=soup.encode("utf-8") self.links=soup.find_all("a")

  

'bytes'对象没有名为find_all

的属性

我试过了 self.urlOpen=urllib.request.urlopen("http://facebook.com") self.content=self.urlOpen.read() soup=BeautifulSoup(self.content.decode("utf-8","ignore"),"html5lib") self.links=soup.find_all("a")

但发生同样的错误

那我应该怎么编码呢?

1 个答案:

答案 0 :(得分:0)

问题是什么?
find_all不应该抛出编码错误,并且您不应该在encode对象上调用bs4.BeautifulSoup,因为encode会返回字节字符串 - 而不是汤! - 所以你不能打电话给find_all

你在任何地方使用soup.prettify()吗?在那种情况下,这可能是抛出错误的一行。请添加Minimal, Complete and Verifiable example代码。