我正在尝试将漂亮的汤对象中的文本保存到文件中,以便以后编辑和使用。我已经导入了所有必要的模块,但是由于某种原因,每次在“ 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"))