猿问

试图获取最新消息是有效的,但它将所有这些消息写在一行中

我正在尝试从下面的代码(url)中的指定站点获取所有最新消息,这是可行的,我从该站点获取最新消息,并且我可以成功地将这些消息打印在屏幕上,其中的每一条消息都在其中自己的线。


import requests

from bs4 import BeautifulSoup

import os


url = 'https://www.ljportal.com/'

headers = #my headers here

page = requests.get(url, headers=headers)

soup = BeautifulSoup(page.text, 'lxml')


with open("news.txt", "a") as f:

    for i in soup.find_all("h3"):

        print(i.text)

但是我的问题是,当我尝试将其写入文件时,它会将所有新闻放在一行中,而我不知道如何在每一行中获取它们。我只是替换print(i.text)为f.write(i.text).


小唯快跑啊
浏览 91回答 1
1回答

哈士奇WWW

我只是用 f.write(i.text) 替换 print(i.text)。默认情况下,print在它打印的任何内容之后添加一个换行符(它还会将所有内容以及一堆其他内容字符串化)。IOBase.write只写你给它的任何东西而不做修改。您可以使用 继续使用print并将其输出发送到您的文件print(i.text, file=f),或者您可以在i.text(f.write(i.text + '\n')或f.write(i.text); f.write('\n').
随时随地看视频慕课网APP

相关分类

Python
我要回答