From 433bf784f0c9c36bda135a43de24f983dc3896da Mon Sep 17 00:00:00 2001 From: "Jochens, Florian" <fj@andaco.de> Date: Fri, 5 Nov 2021 15:48:33 +0100 Subject: [PATCH] input_fj.py --- input/input_fj.py | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/input/input_fj.py b/input/input_fj.py index 00566e0..444c8c2 100755 --- a/input/input_fj.py +++ b/input/input_fj.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -Functions for information retrievel of articles from the ACS journal JCIM +Functions for information retrieval of articles from the ACS journal JCIM """ @@ -53,8 +53,12 @@ def get_article_info(soup): contributors = [] for con in cons.find_all('span', class_ = 'hlFld-ContribAuthor'): contributors.append(con.text) - num_citations = header.find('a', class_ = 'internalNav').text - + numc = header.find('div', class_ = 'articleMetrics_count') + if not numc.a: + num_citations = 0 + else: + num_citations = numc.a.text + pub = Publication(article_title, publication_date, contributors, doi_url, subjects, num_citations) return pub @@ -106,26 +110,34 @@ Subjects:''') print(*(pub.subjects), sep = ", ") print('\nContributors:') print(*(pub.contributors), sep = ", ") - print(f'\nThis article is cited by the following {pub.num_citations} publications\n') - for citation in pub._citations: - print(f''' + + if int(pub.num_citations) > 0: + if int(pub.num_citations) == 1: + print(f'\nThis publication is cited by the following publication:\n') + else: + print(f'\nThis publication is cited by the following {pub.num_citations} publications:\n') + for citation in pub._citations: + print(f''' Title: {citation.title} Journal: {citation.journal} Contributors: {citation.contributors} DOI-URL: {citation.doi_url} - ''') + ''') + else: + print('\nThis publication is not cited by any other publication.') def input(url): html_text = req.get(url).text soup = bs(html_text, 'html.parser') pub = get_article_info(soup) - get_citation_info(pub, int(pub.num_citations), soup) + if int(pub.num_citations) > 0: + get_citation_info(pub, int(pub.num_citations), soup) return pub -if len(sys.argv) != 2: - sys.stderr.write('Usage: {} <url>\n'.format(sys.argv[0])) - exit(1) -url = sys.argv[1] -pub = input(url) -print_pub_info(pub) +#if len(sys.argv) != 2: +# sys.stderr.write('Usage: {} <url>\n'.format(sys.argv[0])) +# exit(1) +#url = sys.argv[1] +#pub = input(url) +#print_pub_info(pub) -- GitLab