Python 无法在文本文件中写入多个字段
我用python创建了一个脚本,从网页中获取一些字段,并将这些字段写入文本文件。当我在csv文件或excel中写入数据时,我可以用正确的方式进行。但是,如果在文本文件中写入数据,我会陷入困境 到目前为止,我写过:Python 无法在文本文件中写入多个字段,python,python-3.x,web-scraping,Python,Python 3.x,Web Scraping,我用python创建了一个脚本,从网页中获取一些字段,并将这些字段写入文本文件。当我在csv文件或excel中写入数据时,我可以用正确的方式进行。但是,如果在文本文件中写入数据,我会陷入困境 到目前为止,我写过: import requests from bs4 import BeautifulSoup url = "https://stackoverflow.com/questions/tagged/web-scraping" res = requests.get(url) soup =
import requests
from bs4 import BeautifulSoup
url = "https://stackoverflow.com/questions/tagged/web-scraping"
res = requests.get(url)
soup = BeautifulSoup(res.text, "lxml")
for item in soup.select(".question-summary"):
name = item.select_one(".user-details a").text.strip()
title = item.select_one(".question-hyperlink").text.strip()
views = item.select_one(".views").text.strip()
print(name,title,views)
如何在文本文件中写入刮取的字段,使它们之间保持三个空格间隔?使用
str.format
Ex:
import requests
from bs4 import BeautifulSoup
url = "https://stackoverflow.com/questions/tagged/web-scraping"
res = requests.get(url)
soup = BeautifulSoup(res.text, "lxml")
with open("your.txt", "w") as outfile: #Open file for write
for item in soup.select(".question-summary"):
name = item.select_one(".user-details a").text.strip()
title = item.select_one(".question-hyperlink").text.strip()
views = item.select_one(".views").text.strip()
print(name,title,views)
outfile.write("{} {} {}".format(name,title,views)) #Write Data with 3 space.
这段代码根本不会写入文件。请显示出现问题的实际代码。为什么使用
lxml
解析网页?您所说的实际代码@mkrieger1是什么意思?你想看看我是怎么在csv文件中写的吗?你试图在文本文件中写东西的代码,但结果并非如您所料。您是否建议使用html.parser
而不是lxml
或任何其他方法@RomanPerekhrest?我尝试了您建议的方法,但问题是所有数据都写在一行@Rakesh中。如果有三十个名字,那么我应该得到三十个单独的行。底线是:在每次迭代中,数据应该写在新行中。谢谢。outfile.write(“{}{}{}\n.”格式(名称、标题、视图))