When you connect my wallet to Opensea, they can find out which NFTs and NFT Contracts i own, and show me in Profile page.
I did not provide the ERC721 contract address to Opensea, how does opensea track it?
I believe OpenSea has a database that stores all the NFT of an address, or they use an external API to fetch this information.
OpenSea also could save all the addresses of the ERC721 contract you owned through Etherscan and queries and loads the NFT by listening on the contract so it knows when you are creating or transfering a NFT. When you are done, OpenSea updates these NFT information on its server and re-renders your profile page accordingly when you reload the page.