代码之家  ›  专栏  ›  技术社区  ›  Naomi

Python bs4“bytes”对象没有属性“prettify”

  •  0
  • Naomi  · 技术社区  · 8 年前

    我最近尝试从一个网站上提取数据,但似乎我遇到了一个我自己无法解决的错误。所以我开始四处寻找,看看是否有其他人也有我的错误,我发现3个是准确的,我尝试了所有3个解决方案,还有几个,但似乎都没有效果。

    这是我的代码:

    import bs4
    from time import sleep
    import requests
    import os
    import sys
    import io
    
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer,'cp437','backslashreplace')
    
    f = open('output.txt', 'w')
    f.close()
    project_name = 'reddit'
    url = 'https://www.reddit.com/'
    html = requests.get(url)
    soup = bs4.BeautifulSoup(html.text, 'html.parser').encode('utf-8')
    
    print(soup.prettify())
    

    正如你所看到的,我试过了 sys.stdout = io.TextIOWrapper(sys.stdout.buffer,'cp437','backslashreplace') 这是其他人在另一个线程上建议的,但不幸的是,在我的情况下,它不起作用。

    如果周围有人知道解决方案,我们将非常感激,提前感谢。

    娜奥米,

    1 回复  |  直到 8 年前
        1
  •  3
  •   pp_    8 年前

    拆下 .encode('utf-8') :

    soup = bs4.BeautifulSoup(html.text, 'html.parser')