1. A data processing method comprising: using a computer, receiving a first electronic document, wherein the first electronic document is structured according to a document structure, contains a plurality of content elements separate from the document structure, and contains a plurality of field identifiers and field values; using the computer, generating, based only upon the document structure and not using the content elements, a fingerprint value for the first electronic document by applying a hash function over a document object model (DOM) of the first electronic document; using the computer, determining whether the fingerprint value is in a stored fingerprint map of known fingerprint values; using the computer, generating an intermediate template based upon the first electronic document, and receiving input specifying one or more modifications to the intermediate template, wherein the modifications specify changes to the field labels, and storing the final template based upon the modifications; using the computer, when the fingerprint value is in the fingerprint map, retrieving the final template and a document parser from a plurality of parsers, each of which is associated with a different fingerprint value, parsing the first electronic document using the document parser to identify the field identifiers and field values, and storing the field values in a record in a database; using the computer, when the fingerprint value is not in the fingerprint map, creating and storing a new final template associated with the fingerprint value for the first electronic document, wherein the new final template comprises field labels corresponding to the field identifiers of the first electronic document, and creating and storing a new document parser associated with the new final template that is configured to locate other field identifiers in other electronic documents that match the field identifiers of the first electronic document, and to extract other field values associated with the other field identifiers.