如何将html表格转换为csv文件python?

mqkwyuun  于 2023-01-01  发布在  Python
关注(0)|答案(1)|浏览(628)

我有一个python脚本,如下所示:我可以用我的登录名和密码登录到Web,但我需要将HTML表转换为csv。

import requests
from bs4 import BeautifulSoup
import pandas as pd

login_url = 'myurl'
data = {
    '_username': 'myusername',
    '_password': 'mypassvord'
}

with requests.Session() as s:
    response = s.post(login_url , data)
    index_page = s.get('myurl/link')
    soup = BeautifulSoup(index_page.content, "html.parser")
    print(soup)
    print(index_page)
    table = soup.findAll("table class", {"class": "table hover"})
    print(table)

Print(index_page)返回响应[200],因此没有问题。
但我想将html表格转换为CSV文件。

table = soup.find_all("table class", {"class": "table hover"})

退货[]

我哪里做错了?
我无法从HTML中获取表格。

eit6fx6z

eit6fx6z1#

要从HTML页提取表数据并将其转换为CSV文件,可以执行以下步骤:
使用BeautifulSoup对象的find或find_all方法在HTML页面中查找table元素,这将返回一个table元素列表。
使用find_all方法和tr标签提取表中的行,这将返回一个行列表,其中每一行都是一个BeautifulSoup对象,包含该行的单元格。
使用find_all方法和td标签迭代行并提取单元格,使用csv模块或panda库将提取的数据写入CSV文件。
下面是一个示例,说明如何执行此操作:

import csv

# Find the table element in the HTML page
table = soup.find("table", {"class": "table hover"})

# Extract the rows of the table
rows = table.find_all("tr")

# Open a CSV file for writing
with open('table.csv', 'w', newline='') as csvfile:
    # Create a CSV writer
    writer = csv.writer(csvfile)

    # Write the header row
    writer.writerow([th.text for th in rows[0].find_all("th")])

    # Iterate through the rows and extract the cells
    for row in rows[1:]:
        cells = row.find_all("td")
        writer.writerow([cell.text for cell in cells])

这段代码将从表中提取数据,并将其写入名为table.csv的CSV文件。

相关问题