私はこのサイトのすべての質問をしてきましたが、グーグルではありましたが、Beautifulsoupの出力(リストのようです)を取得してcsv形式私のFlaskアプリはブラウザでダウンロードできます。コードは次のとおりです。Parse BeautifulsoupをダウンロードするためにCSVファイルに出力する
html = col_result.__html__()
bs = BeautifulSoup(html)
table = bs.find(lambda tag: tag.name == 'table')
headers = table.findAll(lambda tag: tag.name == 'th')
rows = table.findAll(lambda tag: tag.name == 'tr')
with open('export_file.csv', 'w+', newline='') as f:
file = csv.writer(f)
file.writerow(headers)
file.writerows(rows)
rfile = csv.reader(open('export_file.csv', newline=''))
return Response(
rfile,
mimetype="text/csv",
headers={"Content-disposition":
"attachment; filename=export_file.csv"})
ダウンロードしたcsvファイルは空白です。私はCSV & bs4モジュールをインポートしました。誰も私がこれを動作させることができないので、コードの返信応答()セクションで 'rfile'変数に渡すことができるように、HTMLから生のcsvデータを生成する方法をアドバイスできますか?
例えば私はcsv.readerオブジェクトを反復処理し、私が手にそれぞれの行を印刷する場合、
[「ファーストネーム」、「姓」、「部門」、「マネージャー」、「不在の期間」、 '後期インスタンス'] [ 'レナータ'、 'Krzysik'、 'ギフト'、 'マイケル・デ・イェーガー'、 '0不在'、 '0遅刻'] ...
...しかし、私はカントcsv形式(listとhtmlタグなし)を解析してrfile変数に割り当てる方法を考えてください。
あなただけの 'csv.writer()'ファイルにそのデータを書き込むために使用することができます。 –
'file'自体を添付ファイルとして返すのではなく、' csv'ファイルの内容を返そうとしましたか? – Tempux
なぜあなたは 'table.find_all( 'th')'などを使っていませんか?ラムダのポイントは何ですか? –