gpt4 book ai didi

python - 将网页中的表格数据写入 csv 文件

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:48 25 4
gpt4 key购买 nike

我用 python 编写了一个脚本来解析网页中的一些数据并通过 panda 将其写入 csv 文件。到目前为止,我所写的内容可以解析该页面中的所有可用表,但在写入 csv 文件的情况下,它将将该页面的最后一个表写入该 csv 文件。当然,由于循环,数据正在被覆盖。如何修复此缺陷,以便我的抓取工具能够写入不同表中的所有数据,而不仅仅是最后一个表?提前致谢。

import csv
import requests
from bs4 import BeautifulSoup
import pandas as pd


res = requests.get('http://www.espn.com/nba/schedule/_/date/20171001').text
soup = BeautifulSoup(res,"lxml")
for table in soup.find_all("table"):
df = pd.read_html(str(table))[0]
df.to_csv("table_item.csv")
print(df)

顺便说一句,我希望仅使用 panda 将数据写入 csv 文件。再次感谢。

最佳答案

您可以使用read_html网页中返回 DataFrames 列表,因此需要 concat对于一个 df:

dfs = pd.read_html('http://www.espn.com/nba/schedule/_/date/20171001')

df = pd.concat(dfs, ignore_index=True)
#if necessary rename columns
d = {'Unnamed: 1':'a', 'Unnamed: 7':'b'}
df = df.rename(columns=d)
print (df.head())
matchup a time (ET) nat tv away tv home tv \
0 Atlanta ATL Miami MIA NaN NaN NaN NaN
1 LA LAC Toronto TOR NaN NaN NaN NaN
2 Guangzhou Guangzhou Washington WSH NaN NaN NaN NaN
3 Charlotte CHA Boston BOS NaN NaN NaN NaN
4 Orlando ORL Memphis MEM NaN NaN NaN NaN

tickets b
0 2,401 tickets available from $6 NaN
1 284 tickets available from $29 NaN
2 2,792 tickets available from $2 NaN
3 2,908 tickets available from $6 NaN
4 1,508 tickets available from $3 NaN

最后to_csv用于写入文件:

df.to_csv("table_item.csv", index=False)

编辑:

为了学习,可以将每个DataFrame附加到列表中,然后concat:

res = requests.get('http://www.espn.com/nba/schedule/_/date/20171001').text
soup = BeautifulSoup(res,"lxml")
dfs = []
for table in soup.find_all("table"):
df = pd.read_html(str(table))[0]
dfs.append(df)

df = pd.concat(dfs, ignore_index=True)
print(df)

df.to_csv("table_item.csv")

关于python - 将网页中的表格数据写入 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46324794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com