csv 从html中抓取表格

pbpqsu0x  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(128)

如何用Pandas和bs4从这个html中抓取表,然后得到第一个表作为主列,第二个表用python转换成csv?

<table background-color="#00CED1" border="1">
<tr><th>STT</th><th>Há» và  tên</th><th>Sá» báo danh</th><th>Chuyên</th>&gt;<th>Äm Toán chung</th><th>Äm 
VÄn chung</th><th>Äm Chuyên</th><th>Tá»ng Äiá»m</th></tr>
<tr><td>1</td><td>Thái Bá Viá»t An</td><td>CO.0001</td><td>Toán</td><td>8.75</td><td>4.75</td><td>7.5</td><td>28.5</t
d></tr>
</table>
nwlls2ji

nwlls2ji1#

我说对了吗?你想:

  • 将html表格转换为csv
  • 第一行(表头)应成为csv中的第一列
  • 第二行(数据)应该成为csv中的第二列

如果是,试试这个:

import csv

import pandas as pd

html = """
<table background-color="#00CED1" border="1">
    <tr>
        <th>STT</th>
        <th>HỠvà tên</th>
        <th>SỠbáo danh</th>
        <th>Chuyên</th>
        &gt;
        <th>Äm Toán chung</th>
        <th>Äm VÄn chung</th>
        <th>Äm Chuyên</th>
        <th>Tá»ng Äiá»m</th>
    </tr>
    <tr>
        <td>1</td>
        <td>Thái Bá Viá»t An</td>
        <td>CO.0001</td>
        <td>Toán</td>
        <td>8.75</td>
        <td>4.75</td>
        <td>7.5</td>
        <td>28.5</td>
    </tr>
</table>
"""

table = pd.read_html(html)[0]

with open('somefile.csv', mode='w', newline='') as file:
    writer = csv.writer(file, dialect='excel')
    for name in table:
        writer.writerow([name, table.iloc[0][name]])

相关问题