【问题标题】:Python 3.5s - How to separate scraped paragraph text with new linesPython 3.5s - 如何用新行分隔刮掉的段落文本
【发布时间】:2016-05-01 14:44:06
【问题描述】:

我正在从网站上抓取文本并将其导出到记事本文档中。我正在尝试分隔段落,尝试了 print + '\n' 的所有可能组合,但没有任何效果。我想知道我做错了什么,因为我只将一大块文本导入到记事本文档中。我是新手,所以如果您解释我正在做的错误,而不仅仅是提供解决方案,那就太好了。谢谢! PS-另外,我认为我必须在提取操作后使用“outfile.close()”,但如果我这样做,脚本就不起作用......

from bs4 import BeautifulSoup
import urllib.request, re

req = urllib.request.urlopen('https://en.wikipedia.org/wiki/Gautama_Buddha')
soup = BeautifulSoup(req, 'html.parser')
req.addheaders = [ ('User-agent', 'Mozilla/5.0') ]

title = soup.title.text

body = soup.find_all('p')
outfile = open("wiki_test.txt","wb")
for i in body:
    print(i.text)
    outfile.write(bytes(i.text+'\n'+"###############", 'UTF-8'))

【问题讨论】:

    标签: python text newline block spaces


    【解决方案1】:

    看看可读性。对于此代码,请尝试

    with open("wiki_test.txt","wb") as outfile:
        for i in body:
            print(i.text + '\n')
            outfile.write(bytes(i.text+'\n'+"###############", 'UTF-8'))
    

    【讨论】:

    • 我使用这段代码得到了完全相同的结果。我开始怀疑记事本或 Windows 8 是否有问题,但这很不寻常,不是吗?在 pycharm 输出控制台上,我看到文本格式正确,段落之间的行,但随后输出到文件仍然没有新行,即使使用您的代码。
    • 可能是我不知道 UTF-8 编码的事情吗?
    猜你喜欢
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 2019-04-13
    • 2020-01-27
    相关资源
    最近更新 更多