aboutsummaryrefslogtreecommitdiffstats
path: root/scrape/parse_cnki_tables.py
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@archive.org>2020-04-03 15:16:17 -0700
committerBryan Newbold <bnewbold@archive.org>2020-04-03 15:16:17 -0700
commitfb767adb9472ff85b46b5a383f3986950b12dd27 (patch)
tree724af4412353c627b0eae26fd4d7fd1164bf2b55 /scrape/parse_cnki_tables.py
parent4cbbdf33ee2a9651f79f96e4bf290d8bc721f69d (diff)
downloadfatcat-covid19-fb767adb9472ff85b46b5a383f3986950b12dd27.tar.gz
fatcat-covid19-fb767adb9472ff85b46b5a383f3986950b12dd27.zip
move more directories around
Diffstat (limited to 'scrape/parse_cnki_tables.py')
-rwxr-xr-xscrape/parse_cnki_tables.py52
1 files changed, 0 insertions, 52 deletions
diff --git a/scrape/parse_cnki_tables.py b/scrape/parse_cnki_tables.py
deleted file mode 100755
index 3763550..0000000
--- a/scrape/parse_cnki_tables.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python3
-
-import sys
-import json
-from bs4 import BeautifulSoup
-
-def parse_cnki_tables(cnki_html):
- soup = BeautifulSoup(cnki_html, "lxml")
-
- papers = []
- for table in soup.find_all('table'):
- for row in table.tbody.find_all('tr'):
- paper = dict()
- for col in ('seq', 'author', 'date'):
- paper[col] = row.find('td', **{'class': col}).get_text().strip().replace('\n', ' ')
- name_td = row.find('td', **{'class': 'name'})
- operat_td = row.find('td', **{'class': 'operat'})
- paper['title'] = name_td.a.get_text().strip().replace('\n', ' ')
- paper['seq'] = int(paper['seq'])
- paper['authors'] = [a for a in paper.pop('author').split(';') if a]
- mark = row.find('span', **{'class': 'markOricon'})
-
- paper['info_url'] = "http://en.gzbd.cnki.net" + name_td.a['href']
- paper['pdf_url'] = "http://en.gzbd.cnki.net" + operat_td.find('a', **{'class': 'icon-download'})['href']
- try:
- paper['html_url'] = "http://en.gzbd.cnki.net" + operat_td.find('a', **{'class': 'icon-html'})['href']
- except TypeError:
- try:
- paper['read_url'] = "http://en.gzbd.cnki.net" + operat_td.find('a', **{'class': 'icon-read'})['href']
- except TypeError:
- #print(operat_td, file=sys.stderr)
- pass
-
- if 'FileName=' in paper['info_url']:
- params = paper['info_url'].split('?')[1].split('&')
- for p in params:
- if p.startswith("FileName="):
- paper['cnki_id'] = p.replace("FileName=", "")
- break
-
- if mark and mark.get_text() == 'CN':
- paper['is_cn'] = True
- else:
- paper['is_cn'] = False
- papers.append(paper)
- return papers
-
-if __name__ == "__main__":
- with open("cnki_tables.html", "r") as f:
- res = parse_cnki_tables(f.read())
- for paper in res:
- print(json.dumps(paper, sort_keys=True))