如何在文本文件中将输出复制到 bs4 中的终端

Posted

技术标签:

【中文标题】如何在文本文件中将输出复制到 bs4 中的终端【英文标题】:how to duplicate output to terminal in bs4 in text file 【发布时间】:2019-05-09 12:15:08 【问题描述】:

我是第一次使用 bs4。如果我使用这个基本代码:

from bs4 import BeautifulSoup
with open ('test.txt','r') as f:
    soup = BeautifulSoup(f)
    print f

终端的输出非常干净,不包含 html 标签。如果我尝试将其打印到 txt 文件,它会提示我添加解析器,因此我添加了“html.parser”。我没有得到相同的结果,即它充满了我试图摆脱的标签。如何在我的 txt 文件中获得相同的结果?

from bs4 import BeautifulSoup
with open ('test.txt','r') as f:
    soup = BeautifulSoup(f,'html.parser')
    with open ('test2.txt', 'w') as x:
        x.write(str(soup))

*EDIT 下面是我运行此代码时 test2.txt 中的示例:

    each\u00a0row you want to accept.\n <li>At the top of the list, 
    under the <b>Batch Actions</b> drop-down arrow, 
    choose\u00a0<b>Accept Selected</b>.</li>\n <li>All the selected 
    transactions\u00a0move from the <b>For Review

但在终端我得到:

    each\u00a0row you want to accept.\n At the top of the list, under 
    the Batch Actions drop-down arrow, choose\u00a0Accept Selected.\n 
    All the selected transactions\u00a0move from the For Review 
    tab\u00a0to the In QuickBooks 

【问题讨论】:

能否分享一些test.txt的内容 【参考方案1】:

尝试添加.text属性

x.write(str(soup.text))

【讨论】:

以上是关于如何在文本文件中将输出复制到 bs4 中的终端的主要内容,如果未能解决你的问题,请参考以下文章

Linux将终端的命令输出保存为txt文本文件

如何将所有终端输出记录/协议到python中的文本文件中[重复]

如何在Matlab中将数据从一个文本文件复制到另一个文本文件

使用 bs4 和请求处理后如何正确打印出 unicode 文本? [复制]

如何在 Android 中将文本复制到剪贴板?

在 Bash 中将文本文件作为命令运行