Я новичок в stackoverflow и программирование в python. Я хотел бы проанализировать html, содержащий несколько таблиц, в CSV. В частности, я хотел бы получить следующий результат:
FruitA,QuantityA
FruitB,QuantityB
FruitC,QuantityC
FruitD,QuantityD
Для этого я написал следующее:
from bs4 import BeautifulSoup
import csv
html = open("table.html").read()
soup = BeautifulSoup(html,features="html.parser")
table = soup.find("table")
output_Fruits = []
output_Qs =[]
for table_row in table.findAll('tr'):
columnsFruit = table_row.findAll('<th> Fruit </th>')
columnsQ = table_row.findAll('<th> Quantity </th>')
if columnsFruit:
rowFruit = table_row.findAll('td')
output_Fruit = []
output_Fruit.append(rowFruit.text)
output_Fruits.append(output_Fruit)
elif columnsQ:
rowQ = table_row.findAll('td')
output_Q = []
output_Q.append(rowQ.text)
output_Qs.append(output_Q)
with open('output.csv', 'w') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
i=1
i_max=len(output_Fruits)+1
while i<i_max:
writer.writerow(output_Fruits[i],output_Qs[i])
i=i+1
Но вывод, который я получаю, является пустым файлом. Может кто-нибудь помочь? где ошибка?
Вот таблица. html файл, который я пытаюсь проанализировать>
<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0lax{text-align:left;vertical-align:top}
</style>
<table>
<tr>
<th>Fruit</th>
<td>a</td>
</tr>
</table>
<table>
<tr>
<th>Quantity</th>
<td>1</td>
</tr>
</table>
<table>
<tr>
<th>Fruit</th>
<td>b</td>
</tr>
</table>
<table>
<tr>
<th>Quantity</th>
<td>6</td>
</tr>
</table>
<table>
<tr>
<th>Fruit</th>
<td>c</td>
</tr>
</table>
<table>
<tr>
<th>Quantity</th>
<td>12</td>
</tr>
</table>