The second one clearly lists all addresses associated with (many) inputs. These are the "from" addresses.
It's quite simple, can't we agree on this?
OP was asking about "from" addresses, but was told there was no such thing in Bitcoin. I claim this is false, as transaction inputs specify public keys which translate into corresponding addresses. The coins are thus sent from these addresses, in the sense that control (ownership) of coins is reassigned from these "from" addresses (and the corresponding key pairs) to the receiveing addresses (and the corresponding key pairs).
In doing so, you have redefined "from" to mean "the last address that it was sent to". If muddling the two concepts works for you, then enjoy, I guess.
However, when people come here asking this question, they are trying to do something. The something that they are doing is dangerous, and never the correct way to solve the (real) problem they have. Typically, what they really want is a return address. Bitcoin has no such concepts. There is no return address, just like there is no sending address. People working with bitcoin need to accept the system as it really is, not the way they want it to be. They can choose not to, as you have, but they do so at their own peril, and I won't encourage them down that road.
Bitcoin transactions connect other transactions to scripts. They do not connect addresses to addresses. Just because you can sometimes (or even usually) find an address that controlled a now-redeemed transaction does not mean that the new transaction
came from that address. There is no
general solution, because the concepts simply do not exist in the system.
Do you understand that? You are finding things that exist in
some transactions that have properties similar to the thing you are looking for, and you claim that they
are the thing you are looking for.
What address did this little guy come from?