def test_searchretrieve(self): r = sruthi.searchretrieve('http://test.com/sru/', 'Test-Query') self.assertIsInstance(r, sruthi.response.SearchRetrieveResponse) self.session_mock.return_value.get.assert_called_once_with( 'http://test.com/sru/', params={ 'operation': 'searchRetrieve', 'version': '1.2', 'query': 'Test-Query', 'startRecord': 1, 'maximumRecords': 10, })
def loc_search(isbn, sru_base): loc_lcc = None try: records = sruthi.searchretrieve(sru_base, query=isbn) record = records[0] fields = record.get('datafield', []) for field in fields: if field['tag'] != '050': continue if len(field.get('subfield', [])) > 0: loc_lcc = (field['subfield'][0]['text']) break except Exception as e: print("Error: %s" % e, file=sys.stderr) return None return loc_lcc
import sruthi records = sruthi.searchretrieve('https://suche.staatsarchiv.djiktzh.ch/SRU/', query='Zurich') print("SRU version:", records.sru_version) print("Count:", records.count) print('') for record in records: # print fields from schema print(record['reference']) print(record['title']) print(record['date']) print(record['extra'] ['link']) # extra record data is available at the 'extra' key print('')
import sruthi from pprint import pprint # check supported schemas of server server_url = 'https://suche.staatsarchiv.djiktzh.ch/SRU/' schema = 'isad' server = sruthi.explain(server_url) print(20 * '=') print('=') print(f"= Record with schema: {schema}") print('=') print(20 * '=') records = sruthi.searchretrieve( server_url, query='Zurich', record_schema=schema ) pprint(records[0])
import sruthi import csv import sys import traceback from bs4 import BeautifulSoup import requests from random import randint from time import sleep records = sruthi.searchretrieve( 'https://amsquery.stadt-zuerich.ch/SRU/', query="isad.reference = V.B.b.43.:1 AND isad.descriptionlevel = Dossier") try: header = [ 'signatur', 'titel', 'jahr', 'link_query', 'dateiname', 'download_url' ] writer = csv.DictWriter(sys.stdout, header, delimiter=',', quotechar='"', lineterminator='\n', quoting=csv.QUOTE_MINIMAL) writer.writeheader() for record in records: sleep(randint(1, 5)) # get additional info from link r = requests.get(record['extra']['link']) soup = BeautifulSoup(r.text, 'html.parser')
import sruthi from pprint import pprint # check supported schemas of server server = sruthi.explain('http://lx2.loc.gov:210/LCDB?') print(f"Supported schemas: {', '.join(server.schema.keys())}") for schema in server.schema.keys(): print(20 * '=') print('=') print(f"= Record with schema: {schema}") print('=') print(20 * '=') records = sruthi.searchretrieve('http://lx2.loc.gov:210/LCDB?', query="human", record_schema=schema) pprint(records[0]) print('') print('')