Well, if you can only extract one URL at a time, but want them all in a list, you need to use Create new list at the beginning of your flow and then use Add item to list after you have extracted it (inside the loop).
Somewhat like this:
- Create new list
- open browser
- get list of urls
- Loop through these url - begin loop
- goto web page
- Extract data from web page (here I store the data url in a variable)
- Add item to list - add the URL you just extracted into the list you created at the beginning of the flow
- end loop
This way you will end up with a list of URLs at the end of your loop.
As to your other question regarding Extract data from web page returning a data table - that's just the way the action is designed. If you only need a single value, you're actually better off with using Get details of element in web page. Extract data from web page is usually used when you need more than one value - a list or a table. That's why it's designed to always return a data table, regardless of how many items you need.
If you want to stick to using Extract data from web page, you can still get the value from the table as %DownloadLink[0][0]%.
-------------------------------------------------------------------------
If I have answered your question, please mark it as the preferred solution. If you like my response, please give it a Thumbs Up.
I also provide paid consultancy and development services using Power Automate. If you're interested, DM me and we can discuss it.