Python网页爬虫导出CSV后无法找到生成文件 求解决方案
爬虫CSV无法保存问题修复方案
你的代码里存在语法、路径、逻辑三类错误,逐一修复即可正常生成文件:
现存错误点
- 路径参数错误:
to_csv传入的r'C\Users\19794\OneDrive\Desktop\Coding Projects'存在两个问题:C盘盘符后缺少冒号(正确应为C:),且路径指向文件夹而非具体文件,pandas无法将数据写入文件夹路径,必须指定完整的.csv文件名。 - 语法错误:
- BeautifulSoup标签对象无
findall方法,正确方法名为find_all,缺少下划线会直接触发属性报错 - 变量名不能用
.连接,temp.df属于非法变量名,应改为下划线命名temp_df - 代码缩进混乱,Python强制缩进对齐,乱缩进会直接触发语法错误
- 未初始化
final_df空DataFrame,第一次执行concat时会触发变量不存在报错 temp.df = columns行未定义columns变量,且会直接覆盖之前创建的单球员数据DataFrame,逻辑完全错误
- BeautifulSoup标签对象无
- 逻辑错误:
- 循环语句
for players in players会覆盖外层存储所有球员行的列表变量,虽然不影响运行但属于不规范写法 to_csv写在for循环内部,每遍历一条球员数据就会覆盖写入一次文件,效率极低,循环中途报错会导致文件损坏- 未给requests请求加请求头,很容易被ESPN反爬拦截返回403错误,导致后续解析不到任何数据
- 循环语句
修正后完整代码
import pandas as pd import re from bs4 import BeautifulSoup import requests # 加请求头绕过基础反爬 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36' } url = 'https://www.espn.com/mlb/history/leaders/_/breakdown/season/year/2022' page = requests.get(url, headers=headers) # 先判断请求是否成功 page.raise_for_status() soup = BeautifulSoup(page.text, 'html.parser') # 提前初始化空的总数据集 final_df = pd.DataFrame() # 修正缩进,修改变量名避免覆盖 players = soup.find_all('tr', attrs={'class': re.compile('row-player-10-')}) for player in players: # 修正find_all方法名 stats = [stat.get_text() for stat in player.find_all('td')] # 修正变量名,去掉错误的columns赋值 temp_df = pd.DataFrame(stats).transpose() # 拼接数据 final_df = pd.concat([final_df, temp_df], ignore_index=True) print(f"已爬取{len(final_df)}条球员数据") # 循环全部结束后再保存文件,修正路径:补全C盘冒号,指定具体csv文件名 save_path = r'C:\Users\19794\OneDrive\Desktop\Coding Projects\mlb_2022_stats.csv' final_df.to_csv(save_path, index=False, sep=',', encoding='utf-8') print(f"文件已成功保存到:{save_path}")
排查注意事项
- 运行前手动打开资源管理器确认
C:\Users\19794\OneDrive\Desktop\Coding Projects文件夹真实存在,且你当前Windows账号对该文件夹有写入权限,OneDrive同步文件夹偶尔会出现权限锁定问题 - 如果运行后还是找不到文件,先把保存路径改成相对路径
./mlb_2022_stats.csv,文件会生成在你当前运行的.py脚本同目录下,先确认爬取逻辑正常再调整绝对路径 - 运行时注意看终端打印信息,如果出现报错直接根据报错提示定位问题即可,代码里加了
page.raise_for_status(),请求被拦截时会直接抛出HTTP错误方便排查
内容的提问来源于stack exchange,提问作者mr.v
相关产品推荐
相关产品推荐

