catalog page parsers
This commit is contained in:
parent
23b053c5a6
commit
921824833f
6 changed files with 203 additions and 4 deletions
32
depicts/barnesfoundation.py
Normal file
32
depicts/barnesfoundation.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import requests
|
||||
import os
|
||||
import json
|
||||
|
||||
def get_json(catalog_id):
|
||||
filename = f'cache/barnesfoundation_{catalog_id}.html'
|
||||
|
||||
url = 'https://collection.barnesfoundation.org/api/search'
|
||||
|
||||
body = {"query": {"bool": {"filter": {"exists": {"field": "imageSecret"}},
|
||||
"must": {"match": {"_id": int(catalog_id)}}}}}
|
||||
|
||||
if os.path.exists(filename):
|
||||
return json.load(open(filename))
|
||||
else:
|
||||
r = requests.get(url, params={'body': json.dumps(body)})
|
||||
print(r.url)
|
||||
open(filename, 'w').write(r.text)
|
||||
return r.json()
|
||||
|
||||
def parse_catalog(data):
|
||||
hit = data['hits']['hits'][0]['_source']
|
||||
|
||||
return {
|
||||
'institution': 'Barnes Foundation',
|
||||
'description': hit['shortDescription'],
|
||||
'keywords': [tag['tag'] for tag in hit['tags']],
|
||||
}
|
||||
|
||||
def get_catalog(catalog_id):
|
||||
data = get_json(catalog_id)
|
||||
return parse_catalog(data)
|
||||
Loading…
Add table
Add a link
Reference in a new issue