import csv
import requests
from bs4 import BeautifulSoup
url = 'https://www.pref.ehime.jp/h25115/kanjyo/topics/influ1819/tb_flu1819.html'
flag = False
headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'
}
r = requests.get(url, headers=headers)
if r.status_code == requests.codes.ok:
soup = BeautifulSoup(r.content, 'html5lib')
table = soup.find('table', class_='datatable')
trs = [i for i in table.find_all('tr')]
tr_max = len(trs)
data = [[] for _ in range(tr_max)]
for j, tr in enumerate(trs):
for td in tr.find_all(['th', 'td']):
cell = td.get_text(strip=True)
rowspan = td.get('rowspan')
colspan = td.get('colspan')
row = int(rowspan) if rowspan else 1
col = int(colspan) if colspan else 1
for y in range(row):
for x in range(col):
data[j + y].append(cell)
if cell and flag:
cell = ''
with open('result.csv', 'w') as fw:
writer = csv.writer(fw, dialect='excel', lineterminator='\n')
writer.writerows(data)