AkShare 答疑专栏
专栏介绍
本专栏的主要目的是为了解决在使用 AkShare 中遇到的各种问题,主题包括但不限于:环境配置、AkShare 安装和升级、数据接口请求、代理配置等等。
常见问题
安装 AkShare 的速度慢,下载时间久
请使用国内的源来安装 AkShare
基于 Python 的代码如下:
pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --upgrade
基于 Anaconda 的代码如下:
pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --user --upgrade
使用代理安装,由于相关限制,在这里对代理的安装和使用不做介绍,请自行搜索配置。
运行任意接口发现报错,错误类似:
AttributeError: module 'akshare' has no attribute 'xxx'
检查 Python 的版本需要在 Python 3.6 以上,推荐使用 Python 3.7.5 及以上版本
检查是否安装了最新版本的 AkShare,如果不是最新版本,请先升级至最新版
检查在文档中是否具有该
xxx
接口,特定情况下有可能会改变接口的命名或者移除某些接口检查所运行的 Python 文件名命名问题,不能用如下命名:
akshare.py
与本地安装包冲突
不能获取指定的日期期间的数据,比如从 20200401 至 20200415 的数据
由于目标网页的大部分的接口一次性返回所有数据,所以在 AkShare 的部分接口函数中没有设置类似
start_date
和end_date
的参数如果要获取指定日期间的数据,请在调用接口后自行处理
接口报错出现类似错误提示:
ReadTimeout: HTTPConnectionPool(host="www.xxx.com")
重新运行接口函数
更换 IP 地址,可以使用代理访问
降低数据访问的频率
接口报错出现类似错误提示:
cannot import name 'StringIO' from 'pandas.compat'
建议安装 pandas 版本大于 0.25.2,建议 pandas 版本大于 1.0
升级命令如下:
pip install akshare --upgrade
出现数据返回错位,如日期数据和价格数据返回错位的情况
多运行几次,是否是网络稳定问题
切换 IP 后重试
可以在 GitHub Issues 中反馈
全球疫情历史数据接口获取不到数据
由于 GitHub 服务器在国外,访问此数据接口最好使用代理访问
如没有代理的情况下,多重复请求几次
返回值字段错位
升级 pandas 到最新版本
Linux 系统显示
execjs._exceptions.RuntimeUnavailableError: Could not find an available JavaScript runtime.
需要安装
nodejs
参考文章
将数据在 IDE 全显示,避免折叠显示不全的情况
全局设置
pandas
,使用方法:
import pandas as pd import akshare as ak # 列名与数据对其显示 pd.set_option('display.unicode.ambiguous_as_wide', True) pd.set_option('display.unicode.east_asian_width', True) # 显示所有列 pd.set_option('display.max_columns', None) # 显示所有行 pd.set_option('display.max_rows', None) stock_zh_index_daily_df = ak.stock_zh_index_daily(symbol="sz399552") print(stock_zh_index_daily_df)