【发布时间】:2020-07-04 01:07:10
【问题描述】:
我从邮件中提取 html 数据并用 beautifulsoup 解析这些数据。接下来,我想将解析后的数据存储在 csv 文件的正确标题下。但是,输入数据的文本不会相应地显示在输出 csv 文件中。
为 csv 文件解析输入数据 (fruits_html):
Apples 43 0 0 0<br/>
Bananas 2282 0 500 0<br/>
Grapes 2534 0 500 0<br/>
Oranges 274 0 0 0<br/>
--------------------------------------------------------------------------------------------------<br/>
脚本:
# Parse raw messages to something readable
soup = BeautifulSoup(raw_email, 'html.parser')
fruits_html = soup.find_all('span')
headers = ["Names", "Quantity", "SpareQty", "MinQty", "MaxQty"]
with open('output.csv', 'w', newline='') as f_output:
csv_output = csv.writer(f_output, delimiter=',')
csv_output.writerow(headers)
for br in soup.find_all('span'):
csv_output.writerow([fruits_html for br in br.find_all('br')])
期望的输出:
我想将所有数量存储在 csv 文件的右侧标题下。不幸的是,我当前的输出在第一行显示标题,在第二行显示不同单元格中的大量<br/>。
【问题讨论】:
-
那是因为你只写了找到的
标签。fruits.html的来源可以提供帮助。 -
感谢您的回复。我怎样才能做到这一点?应该写
fruits_html和csv_output.writerow([fruits_html for br in br.find_all('br')])对吧? -
stackoverflow.com/questions/30694558/… 如果没有示例输入 html,我无法进一步帮助您。
-
对不起,输入的html不是正确的示例吗?你能告诉我你需要什么吗?
-
请参阅下面的答案。我认为您提供的代码以某种方式处理(删除标签)
标签: python csv parsing beautifulsoup