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
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
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
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
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
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)