Ejemplo n.º 1
0
 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,
         })
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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('')
Ejemplo n.º 4
0
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])
Ejemplo n.º 5
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')
Ejemplo n.º 6
0
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('')