Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法在文本文件中写入多个字段_Python_Python 3.x_Web Scraping - Fatal编程技术网

Python 无法在文本文件中写入多个字段

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 =

我用python创建了一个脚本,从网页中获取一些字段,并将这些字段写入文本文件。当我在csv文件或excel中写入数据时,我可以用正确的方式进行。但是,如果在文本文件中写入数据,我会陷入困境

到目前为止,我写过:

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.”格式(名称、标题、视图))