我正在尝试将漂亮的汤对象中的文本保存到文件中,以便以后编辑和使用。我已经导入了所有必要的模块,但是由于某种原因,每次在“ pagename.write(str(soup))”处都会遇到相同的错误
我试图用这种多种方式重写,但我很困惑

#Testing implementation of writing to file
#save the HTML to a beautiful soup object
soup = BeautifulSoup(browser.page_source, 'html.parser')

#TODO: use breadcrumb of page name for loop later on
breadcrumb = soup.select('.breadcrumb span')
pagename = breadcrumb[0].get_text()

#open a file then write to it
bookPage = os.path.join('books/cpp/VST', pagename+'.txt')
open(pagename, 'wb')
pagename.write(str(soup))

#close file
#pagename.close()


#TODO: move on to next file

最佳答案

pagename是一个字符串-从HTML提取的文件名。

您的意思是使用bookPage路径和with context manager。另外,为避免TypeError:需要一个类似字节的对象,而不是'str'错误,并且要获取一个字节字符串,您需要调用encode()

with open(bookPage, 'wb') as f:
    f.write(soup.encode("utf-8"))

10-06 05:04