  We propose a new approach to extracting data items or field values from
semi-structured documents. Examples of such problems include extracting
passenger name, departure time and departure airport from a travel itinerary,
or extracting price of an item from a purchase receipt. Traditional approaches
to data extraction use machine learning or program synthesis to process the
whole document to extract the desired fields. Such approaches are not robust to
format changes in the document, and the extraction process typically fails even
if changes are made to parts of the document that are unrelated to the desired
fields of interest. We propose a new approach to data extraction based on the
concepts of landmarks and regions. Humans routinely use landmarks in manual
processing of documents to zoom in and focus their attention on small regions
of interest in the document. Inspired by this human intuition, we use the
notion of landmarks in program synthesis to automatically synthesize extraction
programs that first extract a small region of interest, and then automatically
extract the desired value from the region in a subsequent step. We have
implemented our landmark-based extraction approach in a tool LRSyn, and show
extensive evaluation on documents in HTML as well as scanned images of invoices
and receipts. Our results show that our approach is robust to various types of
format changes that routinely happen in real-world settings.
