gpt4 book ai didi

python - 'unicode' 对象没有属性 'prettify'

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:41 26 4
gpt4 key购买 nike

我正在使用 BeautifulSoup 来解析 html 文章。我使用了一些函数来清除html,所以我可以只保留主要文章。

此外,我想将 Soup 输出保存到一个文件中。我得到的错误如下:

soup = soup.prettify("utf-8")
AttributeError: 'unicode' object has no attribute 'prettify'

源代码:

#!/usr/bin/env python
import urllib2
from bs4 import BeautifulSoup
import nltk
import argparse

def cleaner():
url = "https://www.ceid.upatras.gr/en/announcements/job-offers/full-stack-web-developer-papergo"
ourUrl = urllib2.urlopen(url).read()
soup = BeautifulSoup(ourUrl)

#remove scripts
for script in soup.find_all('script'):
script.extract()
soup = soup.find("div", class_="clearfix")

#below code will delete tags except /br
soup = soup.encode('utf-8')
soup = soup.replace('<br/>' , '^')
soup = BeautifulSoup(soup)
soup = (soup.get_text())
soup=soup.replace('^' , '<br/>')

print soup
with open('out.txt','w',encoding='utf-8-sig') as f:
f.write(soup.prettify())

if __name__ == '__main__':
cleaner()

最佳答案

这是因为 soup 在这些行之后不再是 BeautifulSoupTag 实例:

soup = (soup.get_text())
soup = soup.replace('^' , '<br/>')

它变成了一个 unicode 字符串,当然,它没有 .prettify() 方法。

根据您想要的输出,您应该能够使用 .get_text().replace_with() , .unwrap() , .extract()和其他 BeautifulSoup 方法来清理您的 HTML,而不是尝试将其作为常规字符串处理。

关于python - 'unicode' 对象没有属性 'prettify',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com