I also did my best to eliminate the drudgery and ended up using Plaid for my import scripts: https://github.com/zahanm/collect-beans They're a company that offers a financial API as a business model. If you sign up as a developer, you can probably make use of their "development" API for personal use for good. The issue is that in order to provide this API, they basically store your credentials and talk to your bank directly. They also have to maintain the brittle scraping scripts, or negotiate a direct API, but that's their business. They're pretty widely used by services that try to link your financial accounts, so they should have a reasonable security story - but I still don't love the arrangement, and only do it because there isn't an alternative.
Zahan On Friday, July 17, 2020 at 6:22:48 AM UTC-7 bl...@furius.ca wrote: > Fixed. > > On Fri, Jul 17, 2020 at 5:43 AM Tono Riesco <to...@riesco.ch> wrote: > >> Hi Martin, >> >> As always, I’m surprised about your code! Thank you for sharing with us. >> >> Looking at your basket project, I tried to install to learn about how did >> you do and I got an error in the install. >> >> Looking inside the code I saw that in the setup.py (which give me the >> error) you are referring to: >> >> name=“ameritrade” >> >> You didn’t mixed the projects, did you? ;-) >> >> >> Regards. >> >> Tono. >> >> >> > On 17 Jul 2020, at 04:32, Martin Blais <bl...@furius.ca> wrote: >> > >> > TRS-80: I applaud you for automating your downloads using Selenium. It >> works really quite well and I'm using it myself to download ETF basket >> compositions (https://github.com/blais/baskets; warning: this isn't >> polished code). It works well, but I concur with Justus: if you don't run >> it very regularly you're bound to find out that it breaks as soon as even >> minor things on the websites change. It's a matter of constant gardening. >> > >> > Justus; I agree with what you said. It's mostly not worth the effort >> (unless you're having fun doing it, or you want to update very frequently). >> > >> > BTW, "baskets" is a project that would benefit from the participation, >> contribution and constant gardening by a multitude of people, and unlike >> banks, there's no personal password to downloading these portfolios and >> there are only a relatively small number of ETF issuers; many would benefit >> from having a unified source of portfolio compositions for ETFs. There are >> commercial services selling this and it's expensive. I think we could even >> extend the codebase to update an associated separate git repo with the >> latest values for a broad spectrum of these portfolios so that others >> wouldn't even have to run webdriver themselves (instead of running a >> database, just using files with a simple API to obtain the data in a common >> way across all issuers). Right now it downloads the portfolio files to a >> local cache; I should have had it write to a git repo instead. >> > >> > Anyhow, I use this to deaggregate my ETF positions and be able to >> surface my specific exposure to a particular stock, across all positions, >> across all accounts. Beancount provides the input portfolio. And of course, >> I don't run it often enough... I had to make fixes to it a few days ago and >> it's still not fully operational on all my ETFs. So little time... >> > >> > >> > >> > >> > >> > On Thu, Jul 16, 2020 at 9:26 AM Justus Pendleton <just...@gmail.com> >> wrote: >> > I'm somewhat amused that you don't have time to spend five minutes once >> a month downloading CSV files but you have the many, many hours required to >> investigate, implement, and write about your alternative that saves five >> minutes a month :) >> > >> > Your approach won't work with any institution that has 2FA and I can't >> imagine not having 2FA on my financial accounts. >> > >> > Also, having spent many years dealing with substantial Selenium test >> suites, they are extremely brittle and required a surprising amount of >> ongoing maintenance. Failures due to timeouts from some DOM element taking >> too long to arrive, changes in the DOM breaking everything, etc. For a >> small personal project those may not be as frustrating as they were for a >> commercial software effort, though. >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "Beancount" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an email to beancount+...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/beancount/39f2aa01-b039-4eb4-ada6-257f6b511627o%40googlegroups.com >> . >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "Beancount" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an email to beancount+...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/beancount/CAK21%2BhMo2b-DL-ZmcU%3Dq5PH6CWFDwvVAjMhnY4X-NAbk%2BcmRow%40mail.gmail.com >> . >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Beancount" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to beancount+...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/beancount/551CD8CD-E35E-4600-82BB-95AEE098A801%40riesco.ch >> . >> > -- You received this message because you are subscribed to the Google Groups "Beancount" group. To unsubscribe from this group and stop receiving emails from it, send an email to beancount+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/a27de2d8-adb7-4c15-9700-ba40f49988dan%40googlegroups.com.