Beispiel #1
0
class Tester(TestCase):
  def setUp(self):
    self.downloader = ArticleDownloader('NO_API_KEY')
    self.doi = '10.1016/j.nantod.2008.10.014'
    self.pdf_file = TemporaryFile(mode='wb')

    self.txt_file = TemporaryFile(mode='rb+')
    self.txt_file.write('10.1016/j.nantod.2008.10.014')

    self.csv_file = TemporaryFile(mode='rb+')
    self.csv_file.write('nanomaterial+synthesis,')
    self.csv_file.write('battery+electrode,')

  def test_download(self):
    #Single download test
    self.downloader.get_pdf_from_doi(self.doi, self.pdf_file, 'elsevier')
    self.downloader.get_pdf_from_doi(self.doi, self.pdf_file, 'crossref')

  def test_entitlement(self):
    #Test entitlement
    self.assertFalse(self.downloader.check_els_entitlement(self.doi))

  def test_search(self):
    #Search test
    queries = self.downloader.load_queries_from_csv(self.csv_file)
    for query in queries:
      self.downloader.get_dois_from_search(query, rows=1200)

  def tearDown(self):
    pass
Beispiel #2
0
class Tester(TestCase):
    def setUp(self):
        self.downloader = ArticleDownloader(environ.get('ELS_API_KEY'))
        self.doi = '10.1016/j.nantod.2008.10.014'
        self.pdf_file = TemporaryFile(mode='wb')

        self.txt_file = TemporaryFile(mode='rb+')
        self.txt_file.write('10.1016/j.nantod.2008.10.014')

        self.csv_file = TemporaryFile(mode='rb+')
        self.csv_file.write('nanomaterial+synthesis,')
        self.csv_file.write('battery+electrode,')

    def test_download(self):
        #Single download test
        self.downloader.get_pdf_from_doi(self.doi, self.pdf_file, 'elsevier')

    def test_abstract_download(self):
        self.downloader.get_abstract_from_doi(self.doi, 'elsevier')

    def test_search(self):
        #Search test
        queries = self.downloader.load_queries_from_csv(self.csv_file)
        for query in queries:
            self.downloader.get_dois_from_search(query, rows=10)

    def tearDown(self):
        pass
Beispiel #3
0
class Tester(TestCase):
    def setUp(self):
        self.downloader = ArticleDownloader('NO_API_KEY')
        self.doi = '10.1016/j.nantod.2008.10.014'
        self.pdf_file = TemporaryFile(mode='wb')

        self.txt_file = TemporaryFile(mode='rb+')
        self.txt_file.write('10.1016/j.nantod.2008.10.014')

        self.csv_file = TemporaryFile(mode='rb+')
        self.csv_file.write('nanomaterial+synthesis,')
        self.csv_file.write('battery+electrode,')

    def test_download(self):
        #Single download test
        self.downloader.get_pdf_from_doi(self.doi, self.pdf_file, 'elsevier')
        self.downloader.get_pdf_from_doi(self.doi, self.pdf_file, 'crossref')

    def test_entitlement(self):
        #Test entitlement
        self.assertFalse(self.downloader.check_els_entitlement(self.doi))

    def test_search(self):
        #Search test
        queries = self.downloader.load_queries_from_csv(self.csv_file)
        for query in queries:
            self.downloader.get_dois_from_search(query, rows=1200)

    def tearDown(self):
        pass
Beispiel #4
0
class Tester(TestCase):
  def setUp(self):
    self.downloader = ArticleDownloader(environ.get('ELS_API_KEY'))
    self.doi = '10.1016/j.nantod.2008.10.014'
    self.pdf_file = TemporaryFile(mode='wb')

    self.txt_file = TemporaryFile(mode='rb+')
    self.txt_file.write('10.1016/j.nantod.2008.10.014')

    self.csv_file = TemporaryFile(mode='rb+')
    self.csv_file.write('nanomaterial+synthesis,')
    self.csv_file.write('battery+electrode,')

  def test_download(self):
    #Single download test
    self.downloader.get_pdf_from_doi(self.doi, self.pdf_file, 'elsevier')
    self.downloader.get_pdf_from_doi(self.doi, self.pdf_file, 'crossref')
    self.downloader.get_pdf_from_doi(self.doi, self.pdf_file, 'rsc')

  def test_abstract_download(self):
    self.downloader.get_abstract_from_doi(self.doi, 'elsevier')

  def test_entitlement(self):
    #Test entitlement - want to check this works, but pass/fail depends on IP addr
    self.assertTrue(self.downloader.check_els_entitlement(self.doi) in [True, False])

  def test_search(self):
    #Search test
    queries = self.downloader.load_queries_from_csv(self.csv_file)
    for query in queries:
      self.downloader.get_dois_from_search(query, rows=1000)

  def tearDown(self):
    pass
Beispiel #5
0
class Tester(TestCase):
  def setUp(self):
    self.downloader = ArticleDownloader(environ.get('ELS_API_KEY'))
    self.doi = '10.1016/j.nantod.2008.10.014'
    self.pdf_file = TemporaryFile(mode='wb')

    self.txt_file = TemporaryFile(mode='rb+')
    self.txt_file.write('10.1016/j.nantod.2008.10.014')

    self.csv_file = TemporaryFile(mode='rb+')
    self.csv_file.write('nanomaterial+synthesis,')
    self.csv_file.write('battery+electrode,')

  def test_download(self):
    #Single download test
    self.downloader.get_pdf_from_doi(self.doi, self.pdf_file, 'elsevier')

  def test_abstract_download(self):
    self.downloader.get_abstract_from_doi(self.doi, 'elsevier')

  def test_search(self):
    #Search test
    queries = self.downloader.load_queries_from_csv(self.csv_file)
    for query in queries:
      self.downloader.get_dois_from_search(query, rows=10)

  def tearDown(self):
    pass
Beispiel #6
0
            pdfname = '1-s2.0-' + r.url.split('/')[-1] + '-main.pdf'
            get_pdf_url = r.url.replace(
                'https://linkinghub.elsevier.com/retrieve/',
                'https://www.sciencedirect.com/science/article/'
            ) + '/pdfft?isDTMRedir=true&download=true'
        elif 'ieeexplore.ieee.org' in r.url:
            get_pdf_url = r.url.replace('/document/',
                                        '/stamp/stamp.jsp?tp=&arnumber=')[:-1]
        elif 'iopscience.iop.org' in r.url:
            get_pdf_url = r.url + '/pdf'

        print('Downloading %s' % l['ID'])
        stamp_page = 1
        if 'elsevier' in r.url:
            with open('%s/%s.pdf' % (article_dir, name), 'wb') as my_file:
                b = downloader.get_pdf_from_doi(l['doi'], my_file, 'elsevier')
        elif 'iopscience' in r.url:
            stamp_page = 2
            with open('%s/%s.pdf' % (article_dir, name), 'wb') as my_file:
                b = downloader.get_pdf_from_doi(l['doi'], my_file, 'crossref')
            if not b:
                response = requests.get(get_pdf_url, stream=True)
                with open('%s/%s.pdf' % (article_dir, name), 'wb') as handle:
                    for data in response.iter_content():
                        handle.write(data)
        else:
            response = requests.get(get_pdf_url, stream=True)
            with open('%s/%s.pdf' % (article_dir, name), 'wb') as handle:
                for data in response.iter_content():
                    handle.write(data)