如何修复 python 在 .csv 文档中返回多行而不是一行?
How to fix python returning multiple lines in a .csv document instead of one?
我正在尝试从学校项目的 public 论坛中抓取数据,但每次我 运行 代码时,生成的 .csv 文件都会显示文本变量的多行只有一个。
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
my_url = 'https://www.emimino.cz/diskuse/1ivf-repromeda-56566/'
uClient = uReq(my_url)
page_soup = soup(uClient.read(),"html.parser")
uClient.close()
containers = page_soup.findAll("div",{"class":"discussion_post"})
out_filename = "Repromeda.csv"
headers = "text,user_name,date \n"
f = open(out_filename, "w")
f.write(headers)
for container in containers:
text1 = container.div.p
text = text1.text
user_container = container.findAll("span",{"class":"user_category"})
user_id = user_container[0].text
date_container = container.findAll("span",{"class":"date"})
date = date_container[1].text
print("text: " + text + "\n" )
print("user_id: " + user_id + "\n")
print("date: " + date + "\n")
# writes the dataset to file
f.write(text.replace(",", "|") + ", " + user_id + ", " + date + "\n")
f.close()
理想情况下,我试图为每个数据条目创建一行(即文本、user_id、一行中的日期),但我却为一个文本条目获取多行,而为 user_id 和日期条目。
this is the actual output
this is the expected output
只需将新行替换为空字符串即可。
for container in containers:
text1 = container.div.p
text = text1.text.replace('\n', ' ')
我正在尝试从学校项目的 public 论坛中抓取数据,但每次我 运行 代码时,生成的 .csv 文件都会显示文本变量的多行只有一个。
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
my_url = 'https://www.emimino.cz/diskuse/1ivf-repromeda-56566/'
uClient = uReq(my_url)
page_soup = soup(uClient.read(),"html.parser")
uClient.close()
containers = page_soup.findAll("div",{"class":"discussion_post"})
out_filename = "Repromeda.csv"
headers = "text,user_name,date \n"
f = open(out_filename, "w")
f.write(headers)
for container in containers:
text1 = container.div.p
text = text1.text
user_container = container.findAll("span",{"class":"user_category"})
user_id = user_container[0].text
date_container = container.findAll("span",{"class":"date"})
date = date_container[1].text
print("text: " + text + "\n" )
print("user_id: " + user_id + "\n")
print("date: " + date + "\n")
# writes the dataset to file
f.write(text.replace(",", "|") + ", " + user_id + ", " + date + "\n")
f.close()
理想情况下,我试图为每个数据条目创建一行(即文本、user_id、一行中的日期),但我却为一个文本条目获取多行,而为 user_id 和日期条目。
this is the actual output
this is the expected output
只需将新行替换为空字符串即可。
for container in containers:
text1 = container.div.p
text = text1.text.replace('\n', ' ')