springer_crawler: nested content support

* Adds support for content spread over several pages.

Signed-off-by: fschwenn <florian.schwennsen@desy.de>
edpsciences_package: adds new module

* Adds new module for EDP Sciences, converting the metadata to
  MARCXML.

Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
tests: unit test suite added

* Adds unit tests for PoS, APS, CONSYN and EDP Sciences.

* Unifies the harvesting of EDP Sciences and APS.

* Amends setup.py to include test data to the installation.

Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
jats_package: new module for JATS parsing

* Adds a common module for JATS XML parsing.

* APS and EDP Sciences now use the common JATS module.

Tested-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
edpsciences_package: conversion fixes

* Adds 980__a:ConferencePaper.

* Adds reference numbers.

* Adds license harvesting.

* Removes footnotes from title and places
  them to 500__a field. Adds subtitle harvesting.

* Adds subject harvesting.

* Adds keywords harvesting.

* Adds harvesting of article type and only converts articles
  with types 'research-article', 'introduction', 'letter'.

Acked-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
edpsciences_package: attach fulltext

* Attaches fulltext for open access articles of EDP Sciences.

Acked-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cer.ch>
Merge pull request #57 from fschwenn/springer2

springer_crawler: nested content support
global: Bibrecord dependecy removed.

Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
edpsciences_package: attach fulltext fix

* Modifies _attach_fulltext function to handle url timeout errors
  and retries to open the url 10 times.

Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
jats_package: empty affiliation fix

* Handles the case of empty affiliations.

Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
global: refextract calls surrounded in try blocks

* Sometimes the refextract calls produce a RuntimeError
  maximum recursion depth this commit surrounds refextract
  calls with try blocks to avoid the task's termination untill
  the problem is fixed.

Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>