スクレイピングで取得した複数列のテーブルデータをCSVに書き出す時に1列にする方法
初心者のためわかりにくい部分もあるかと思いますが、教えてください。
スクレイピングで取得したテーブルデータをCSVで書き出し、
マイクロソフトのエクセルで開いた場合、
項目1 値1 項目4 値4
項目2 値2 項目5 値5
項目3 値3 項目6 値6
元のテーブルの形式上、このように表示されます。
これを、
項目1 項目2 項目3 項目4
値1 値2 値3 値4 ....
というようにエクセルで開いた時に項目が一行にまとめて表示させるようにしたいです。
様々なサイトを見てコードをコピペしたので、
下記のようなコードとなっております。
いろいろ検索したものの解決できず困っております。
お知恵をいただければ幸いです。
import csv
from urllib.request import urlopen
from bs4 import BeautifulSoup
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
html = urlopen("https:xxxxxxxxx")
bsObj = BeautifulSoup(html, "html.parser")
table = bsObj.findAll("table", {"class":"xxxxxxxx"})[0]
rows = table.findAll("tr")
with open("xxx.csv", "w", encoding='utf_8_sig', newline='') as file:
writer = csv.writer(file)
for row in rows:
csvRow = []
for cell in row.findAll(['td', 'th']):
csvRow.append(cell.get_text())
writer.writerow(csvRow)