【发布时间】:2022-01-12 16:57:21
【问题描述】:
我正在尝试从单个网页中抓取多个表格,但无法将其保存到 .csv 文件。只有最后一个表被保存在下面是代码,请建议
import time
from selenium import webdriver
import pandas as pd
base_url = 'https://uk.insight.com/en_GB/shop/product/2W1F2EA%23ABU/HEWLETT-PACKARD-(HP-INC)/2W1F2EA%23ABU/HP-ProBook-440-G8--14"--Core-i7-1165G7--16-GB-RAM--1-TB-SSD--UK/'
print('Opening Chrome Browser Automatically in 5 secs')
time.sleep(5)
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=options)
driver.get(base_url)
df = pd.read_html(driver.page_source)
df2 = df[4:]
for table in df2:
df = pd.DataFrame(table)
df.to_csv('table.csv',index=False)
我不知道如何按照上面的方法将所有数据帧保存到单个 .csv 中,只有最后一个 df 被保存。
【问题讨论】:
-
是要将每张表保存到单独的csv文件中,还是将所有表合并为一个并将合并后的表保存到一个csv文件中?
-
我想将所有组合表保存到一个 csv
-
所有表的列数和列名是否相同?
-
是的,列数相同,但列名不同
-
您可以尝试在循环之前创建一个列表,然后将每个
df附加到列表中,然后在循环之后调用pd.concat(df)或pd.concat(df, axis=1)。这两个都将返回数据帧。
标签: python pandas dataframe selenium csv