如何将Colab输出写入谷歌云端硬盘及维基爬虫结果直传Google表格
嘿,这两个问题我刚好都实操过,给你一步步讲清楚:
1. 如何将Google Colab环境下Jupyter Notebook的运行输出写入Google云端硬盘?
首先得把Colab和你的Google云盘关联起来——也就是挂载云盘,这是所有操作的基础:
from google.colab import drive drive.mount('/content/drive')
运行这段代码后,会弹出一个授权链接,点进去登录你的Google账号,复制生成的验证码粘贴回Colab的输入框,回车后就能看到云盘挂载在/content/drive/MyDrive/路径下了。
接下来分两种场景处理:
- 普通文本/日志输出:如果你的输出是零散的打印文本、运行日志,直接用Python的文件操作就能写入云盘。比如你有一段模型训练结果要保存:
# 假设你的输出内容存在这个变量里 output_content = "Colab模型训练日志:验证集准确率95.2%" # 写入云盘的txt文件,路径可以根据自己的需求修改 with open('/content/drive/MyDrive/colab_training_log.txt', 'w', encoding='utf-8') as f: f.write(output_content)
要是你是循环输出的内容(比如遍历打印每一轮迭代结果),可以用追加模式逐行写入,同时保留Notebook里的显示:
with open('/content/drive/MyDrive/loop_output.txt', 'a', encoding='utf-8') as f: for i in range(5): result_line = f"第{i+1}轮迭代损失值:{0.1*i}\n" print(result_line) # 在Notebook里实时显示 f.write(result_line) # 同步写入云盘文件
- 结构化数据(比如DataFrame):如果你的输出是Pandas表格数据,直接存成CSV/Excel到云盘就行:
import pandas as pd # 模拟你的运行结果DataFrame result_df = pd.DataFrame({'样本ID': [1,2,3], '预测结果': ['正', '负', '正']}) # 保存到云盘,index=False是去掉默认的索引列 result_df.to_csv('/content/drive/MyDrive/prediction_result.csv', index=False, encoding='utf-8')
2. 开发维基百科爬虫后,需将爬取得到的结果保存为CSV格式,是否可直接将程序生成的输出存储至Google Spreadsheet?
当然可以!而且完全不用先存成CSV再手动上传,直接在Colab里就能把爬虫结果同步到Google表格,效率高太多了。具体操作步骤如下:
- 先安装需要的依赖库(Colab默认没预装):
!pip install gspread oauth2client
- 授权访问你的Google表格:
from google.colab import auth auth.authenticate_user() import gspread from oauth2client.client import GoogleCredentials # 初始化授权客户端 gc = gspread.authorize(GoogleCredentials.get_application_default())
运行这段代码后同样需要授权,按页面提示操作即可。
- 创建新表格或者打开已有表格:
- 要是你想新建一个表格存结果:
# 创建名为"维基百科爬取数据"的表格 new_sheet = gc.create("维基百科爬取数据") # 记得分享给你的邮箱,不然可能在Google Drive里找不到 new_sheet.share('your_email@xxx.com', perm_type='user', role='writer') # 打开这个表格的第一个工作表 worksheet = gc.open("维基百科爬取数据").sheet1
- 要是你已经有现成的表格,直接打开:
worksheet = gc.open("你已有的表格名称").sheet1
- 把爬虫结果写入表格:
如果你的爬虫结果是Pandas DataFrame,转成嵌套列表就能直接写入:
import pandas as pd # 模拟你的爬虫结果(比如爬了维基百科的标题和简介) crawl_df = pd.DataFrame({'页面标题': ['Python', '人工智能'], '简介': ['高级编程语言', '模拟人类智能的技术']}) # 把表头和数据转成嵌套列表,第一行是表头 data_values = [crawl_df.columns.tolist()] + crawl_df.values.tolist() # 从A1单元格开始写入 worksheet.update('A1', data_values)
要是你是边爬边存,也可以逐行追加数据:
# 先写入表头 worksheet.append_row(['页面标题', '简介']) # 模拟爬虫循环,假设crawl_results是你爬虫返回的每一条数据 for item in crawl_results: # 把每个item的对应字段加到表格里 worksheet.append_row([item['title'], item['summary']])
小提醒:如果你的爬取数据量特别大,建议分批写入,避免单次请求超时哦。
内容的提问来源于stack exchange,提问作者Shri P
相关产品推荐
相关产品推荐

