抓取个人财务数据的工具。
项目描述
用于从金融机构抓取个人财务数据的Python包。
此包可以单独使用,但特别设计为与beancount-import一起使用。
支持的数据源
- finance_dl.ofx:使用ofxclient通过OFX协议下载数据。
- finance_dl.mint:使用mintapi从Mint.com网站下载数据。
- finance_dl.venmo:从Venmo.com网站下载交易和余额信息。
- finance_dl.paypal:从Paypal.com网站下载交易。
- finance_dl.amazon:从Amazon网站下载订单发票。
- finance_dl.healthequity:从HealthEquity网站下载交易历史和余额信息。
- finance_dl.google_purchases:下载Google从Gmail消息中启发式提取的购买。
- finance_dl.stockplanconnect:从摩根士丹利Stockplanconnect网站下载PDF文档(包括发布和交易确认)。
- finance_dl.pge:下载太平洋煤气与电力公司(PG&E)的PDF账单。
- finance_dl.comcast:下载Comcast的PDF账单。
- finance_dl.ebmud:下载东湾市政公用事业区(EBMUD)的水费账单。
- finance_dl.anthem:下载Anthem BlueCross保险索赔单。
- finance_dl.waveapps:从Wave网站下载收据图片和提取的交易数据,Wave是一个免费的收据扫描网站/移动应用程序。
- finance_dl.ultipro_google:从Ultipro下载PDF格式的Google员工工资单。
- finance_dl.usbank:以OFX格式下载US Bank信用卡数据。
- finance_dl.radiusbank:从Radius银行下载QFX格式的数据。
- finance_dl.schwab:从Schwab经纪账户下载CSV格式的数据。
- finance_dl.gemini:使用REST API从Gemini加密货币交易所下载交易、转账和余额,存储在自定义CSV格式中。
配置
要从PyPi安装最新发布的包,只需输入以下内容:
pip install finance-dl
要从仓库的克隆版安装,请输入以下内容:
pip install .
或者,用于开发:
pip install -e .
配置
创建一个名为finance_dl_config.py
的配置文件。有关此文件的完整示例和一些文档,请参阅example_finance_dl_config.py。
有关详细信息,请参阅各个爬虫模块的文档。
基本用法
您可以通过以下方式运行名为myconfig
的爬虫配置:
python -m finance_dl.cli --config-module example_finance_dl_config --config myconfig
配置myconfig
引用配置模块中名为CONFIG_myconfig
的函数。
请确保您的配置模块在您的Python sys.path
中可访问。由于sys.path
默认包含当前目录,您可以从包含您的配置模块的目录中直接运行此命令。
默认情况下,爬虫将完全自动运行,基于selenium
和chromedriver
的爬虫将在无头模式下运行。如果基于selenium
的爬虫的初始尝试失败,它将自动再次尝试,但此时浏览器窗口是可见的。这允许您手动完成登录过程并输入所需的任何多因素认证代码。
要调试爬虫,您可以通过指定-i
命令行参数以交互模式运行它。这将在交互式IPython shell中运行,允许您手动调用爬虫过程的各个部分。
自动使用
要同时运行多个配置,并跟踪每个配置最后更新时间,您可以使用finance_dl.update
工具。
要显示更新状态,首先创建一个logs
目录并运行以下命令:
python -m finance_dl.update --config-module example_finance_dl_config --log-dir logs status
最初,这将指示没有配置被更新。要更新单个配置myconfig
,请运行以下命令:
python -m finance_dl.update --config-module example_finance_dl_config --log-dir logs update myconfig
指定单个配置时,这会与finance_dl.cli
工具做同样的事情,不同之处在于日志消息被写入到logs/myconfig.txt
,如果成功,将创建一个logs/myconfig.lastupdate
文件。
如果指定了多个配置,如下所示:
python -m finance_dl.update --config-module example_finance_dl_config --log-dir logs update myconfig1 myconfig2
则将并行运行所有指定的配置。
要更新所有配置,请运行以下命令:
python -m finance_dl.update --config-module example_finance_dl_config --log-dir logs update --all
关于Chromedriver版本说明
Chromedriver和Chrome关系非常紧密;它们的版本需要匹配。finance_dl
使用来自chromedriver_binary
Python包的Chromedriver(而不是您的系统上安装的Chromedriver二进制文件)。然而,默认情况下,Chromedriver使用您的系统上安装的Chrome版本。根据您如何在系统上管理这两个安装,这种组合可能会频繁导致finance_dl
因以下消息而失败:
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 97
Current browser version is 96.0.4664.45 with binary path /usr/bin/google-chrome
在这种情况下,您有几个选择
- 显式管理您的
chromedriver_binary
Python包以匹配您的安装的Chrome版本; - 显式管理您的安装的Chrome版本以匹配您的
chromedriver_binary
Python包;或者 - 在除系统默认Chrome版本之外的位置安装与您的
chromedriver_binary
版本匹配的Chrome版本,并将环境变量CHROMEDRIVER_CHROME_BINARY
设置为指向它。(您可以从您的finance_dl配置脚本中这样做,例如,使用类似以下行:os.environ["CHROMEDRIVER_CHROME_BINARY"] = "/usr/bin/google-chrome-beta"
)。
许可证
版权(C)2014-2018 Jeremy Maitin-Shepard。
仅根据GNU通用公共许可证,版本2.0分发。有关详细信息,请参阅LICENSE文件。
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。
源代码分布
构建分布
finance_dl-1.3.4-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1379a49eafd5c8b1b261e3e04eee9868ec9916e4d635a794cfa8e49cf0d651ee |
|
MD5 | 56a579f576a55a1bc9951ff9e00ecfb6 |
|
BLAKE2b-256 | f98e29e00ff4f4d68f1fba21d3cca98788e9a33703e159817d8946798c605c02 |