You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python爬取Coinbase多页数据仅存最后一页排查及云定时运行咨询

问题1:CSV仅保存最后一页数据的原因及修复

核心原因

你将存储抓取结果的names列表初始化放在了遍历urls的循环内部,每处理一个新的页面,names就会被清空重置,循环结束后names里仅保留最后一个URL的抓取结果,最终导出的CSV自然只有最后一页的数据。
另外你的代码还存在两个可优化点:

  1. 每次循环都新建Chrome驱动实例,资源消耗大,可复用同一个驱动实例
  2. 导出文件名拼接了两次date变量,会生成冗余重复的文件名,且时间中的冒号在部分系统中不支持作为文件名字符

修复后的代码

from selenium import webdriver
from bs4 import BeautifulSoup
import time
import pandas as pd

urls = []
for i in range(1, 4):
    if i == 1:
        url = "https://www.coinbase.com/price/s/listed"
        urls.append(url)
    else:
        url = "https://www.coinbase.com/price/s/listed" + f"?page={i}"
        urls.append(url)
print(urls)

# 将names初始化移到循环外部
names =[]
# 复用同一个浏览器驱动,避免重复启动
wd = webdriver.Chrome()
for url in urls:
    wd.get(url)
    # 新手可以先保留sleep,后续可替换为显式等待减少等待时间
    time.sleep(30)
    resp = wd.page_source
    html = BeautifulSoup(resp,"lxml")
    tr = html.find_all("tr",class_="AssetTableRowDense__Row-sc-14h1499-1 lfkMjy")
    print(len(tr))
    for i in tr:
        name1 = i.find("span",class_="TextElement__Spacer-hxkcw5-0 cicsNy Header__StyledHeader-sc-1xiyexz-0 kwgTEs AssetTableRowDense__StyledHeader-sc-14h1499-14 AssetTableRowDense__StyledHeaderDark-sc-14h1499-17 cWTMKR").text
        name2 = i.find("span",class_="TextElement__Spacer-hxkcw5-0 cicsNy Header__StyledHeader-sc-1xiyexz-0 bjBkPh AssetTableRowDense__StyledHeader-sc-14h1499-14 AssetTableRowDense__StyledHeaderLight-sc-14h1499-15 AssetTableRowDense__TickerText-sc-14h1499-16 cdqGcC").text
        names.append([name1,name2])
# 全部抓取完成后再关闭驱动
wd.quit()

ns=pd.DataFrame(names)
date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
path = "/Users/paul/jpn traffic/coinbase/coinbase"
# 修正重复拼接date的问题,同时把时间里的冒号替换掉避免部分系统不支持文件名带冒号
ns.to_csv(path + date.replace(':','-') +'.csv',index=None)
问题2:定时运行+邮件发送方案

适合新手的低门槛方案如下:

  • 云服务器选择:购买最低配的Linux轻量应用服务器即可,一年成本仅几十元,系统选择Ubuntu 22.04版本。
  • 运行环境配置:在服务器上安装Python环境、对应依赖库,以及无头模式的Chrome浏览器,启动webdriver时添加--headless=new、--no-sandbox等无头启动参数,适配无图形界面的服务器环境。
  • 邮件发送:直接使用Python自带的smtplib和email库即可实现邮件发送,支持QQ邮箱、163邮箱等主流邮箱,可把爬取结果作为附件或正文内容发送到你的目标邮箱,无需额外第三方服务。
  • 定时任务:直接使用Linux系统自带的crontab工具配置定时规则,无需额外安装复杂的定时框架,一行命令即可设置每天指定时间运行脚本。

内容的提问来源于stack exchange,提问作者southparkpythonguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 10:12:00