1. A computer-implemented method performed by data processing apparatus comprising one or more computers in data communication, the method comprising: instantiating a virtual machine emulating an operating system of a user device; instantiating, within the virtual machine, a native application that generates application pages for display on a user device within the native application, the native application operating independent of a browser application that can operate on the user device; accessing, within the virtual machine, application pages of the native application, and for each of the application pages: extracting content from the application page, the content including content of a plurality of different content types, the content for each content type being extracted by a corresponding extractor specific to that content type; generating application page data describing content of the application page, the content described by the application page data including text that a user device displays on the application page when the user device displays the application page; and indexing the application page data for the native application in an index that is searchable by a search engine.