Component-Based Crawling of Complex Rich Internet Applications