Yes, you can load in blend file data without opening the blend file using the library API.
Though this is intended for linking in data, you can use it to get data-blocks from a blend file. However it may not be a solution for you since you can only list the data-block names.
Optionally you could link the data, then remove it if you wanted to find out more about the data-blocks.
Note, I realize that blendfile.py
blendfile.py
may prove a better solution regarding the use case described in the question, but adding this answer for completeness, others who read this question may find the library method useful.