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

使用Pandas查询加密货币对遇到的分页及地域范围问题

问题解决:pandas.read_html获取雅虎财经加密货币数据分页失效及区域确认

一、分页参数不生效的解决方法

雅虎财经加密货币列表的服务器会验证请求来源,直接修改URL的offset和count参数时,pandas.read_html默认的请求头可能不被认可,导致返回固定的25条数据。可以按以下方式处理:

  1. 添加模拟浏览器的请求头
    先用requests库发送带浏览器标识的请求,再将响应内容传给pandas.read_html,示例代码:

    import pandas as pd
    import requests
    
    # 带分页参数的目标URL
    url = "https://finance.yahoo.com/cryptocurrencies?offset=25&count=50"
    # 模拟Chrome浏览器的请求头
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
    }
    
    response = requests.get(url, headers=headers)
    # 解析响应中的表格数据
    df_list = pd.read_html(response.text)
    crypto_df = df_list[0]
    print(crypto_df.shape)  # 正常情况下会返回(50, 列数)
    

    核心是通过User-Agent让服务器识别为浏览器请求,这样分页参数才会生效。

  2. 核对参数名称的正确性
    打开浏览器开发者工具(F12),切换到「网络」面板刷新页面,查看实际请求的URL参数。部分场景下网站会调整参数名,比如用start替代offset,需以实际请求的参数为准。

二、确认是否仅返回美国区加密货币

可以通过两种方式验证:

  • 检查URL的区域参数:如果URL中包含region=US,说明默认返回美国区数据。若需切换区域,可修改该参数(如region=CN),但雅虎财经部分区域的数据访问可能存在限制。
  • 对比不同区域的返回结果:修改region参数后,观察返回的币种列表是否变化。如果列表差异明显,即可确认原URL返回的是美国区专属数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 15:39:50