I assume this is done the same way products like YNAB and even QuickBooks Online access your banking info - through an API provided by the bank (or it's website partner). Your act of logging in is enough to allow a partner (like Plaid) access to endpoints that contain your information, including transaction history, account info, etc. I don't think any of it is done through scraping - the chances of that information being wrong then become Plaid's problem, not the bank's, and there's no way in hell that would be acceptable to Plaid.