gpt4 book ai didi

python - 抓取多个网站并将每个网站的表格放入其自己的 CSV 文件中

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:45 25 4
gpt4 key购买 nike

我有一个文本文件,其中包含我需要抓取的链接。每个网站都有一个表格,我需要获取并保存在自己的 CSV 文件中,我有以下代码:

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

def stir_the_soup():
player_links = open('player_links.txt', 'r')
player_ID_nums = open('player_ID_nums.txt', 'r')
id_nums = [x.rstrip('\n') for x in player_ID_nums]
idx = 0
for url in player_links:
player_link = urllib2.urlopen(url)
bs = BeautifulSoup(player_link, 'lxml')
table_id = ""
if url[-12] == 'b':
table_id = "batting"
elif url[-12] == 'p':
table_id = "pitching"
table = str(bs.find('table', {'id' : (table_id + '_gamelogs')}))
df = pd.read_html(table)
df2 = df[idx]
df2.to_csv(path_or_buf=("%s.csv", id_nums[idx]), sep=',')
idx += 1

if __name__ == "__main__":
stir_the_soup()

id_nums 列表是我想要的每个 CSV 文件的名称列表。

但是我收到了这个错误:

AttributeError: 'tuple' object has no attribute 'close'

不确定出了什么问题,我知道 read_html() 保存了一个数据帧元组,所以我试图获取每个数据帧并将其保存到它自己的 CSV 中。我四处搜索,找不到一个好的答案。感谢任何帮助

最佳答案

据我所知,您正在将一个元组传递给 path_or_buf 属性。这会抛出一个 AttributeError。将 ',' 更改为 '%' 可以解决您的问题:

df2.to_csv(path_or_buf=("%s.csv" % id_nums[idx]), sep=',')

关于python - 抓取多个网站并将每个网站的表格放入其自己的 CSV 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45333370/

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