Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  117 58409
Min workflow for å laste ned 370 programrapporter:
  1. Eksempel-søk: beta.nb.no/search?q=%22Musikk%20Under%22~5%20OR%20%22Under%20Stjernene% 22~5%20AND%20%22Are%20Lund%22~5&mediatype=programrapporter&s ort=dateasc&fromDate=19840101&toDate=20211231
  2. Scroll helt ned slik at alle 370 programrapportene er synlige i nettleser-vinduet
  3. Kjør koden for å printe ut nedlastnings-lenker i console:
    Sitat av Lanjelin Vis innlegg

    HTML-kode

    let urls = $('.item-card-container a').map( function() {
        return $(this).attr('href');
    }).get();
    urls.forEach(function(url){
    	url = url.split('?')[0].split('/')[2];
    	url = 'https://www.nb.no/services/downloader?urn='+url;
    	console.log(url);
    });
    Vis hele sitatet...
  4. Legg til &resolutionlevel=6 på slutten av hver eneste url (regex i notepad++)
  5. Legg alle nedlastnings-lenkene i en .txt fil
  6. kjør følgende kommando for å laste ned filene med unike filnavn og log nedlatningen til egen log-fil i tilfelle et par nedlastninger feiler og må lastes ned på nytt:

    HTML-kode

    wget -nc --trust-server-names -i list2.txt 2>&1 | tee -a wget_log
  7. Dersom én eller flere nedlastninger feiler, kjør kommandoen på nytt, den vil skippe duplikater (fil med samme navn) og bare laste ned filer som ikke har blitt lastet ned fra før. Jeg prøvde med "--content-disposition" for å få nedlastet filene som .pdf men de ga meg bare filer som hadde filnavn med "timestamp" (f.eks. generated_30_12_11_58_40.pdf) som filnavn istedenfor unik id. Dermed ble det klin umulig for wget å se om jeg hadde lastet ned filen før og jeg hadde 6 filer som feilet som jeg ikke kunne finne igjen fordi jeg hadde glemt å logge. Så nå laster jeg ned alle på nytt med unike filnavn. Når alle 370 er lastet ned (kanskje jeg må kjøre kommandoen på nytt et par ganger for de som eventuelt feiler) bruker jeg en eller annen "multi rename" metode for å gi alle 370 filene ".pdf" på slutten av filnavnet sitt.

Tusen takk for hjelpen @Lanjelin !

Har laget flere spillelister basert på programrapportene allerede:

Musikk Under Stjernene Arkiv: youtube.com/channel/UC4vm8vRuyeR_tFUDhgHutfA/playlists

Et par erfaringer jeg ønsker å dele etter å ha lastet ned programplanene jeg trengte for å lage spillelistene.

Jeg brukte programmet "bulk rename utility" for å gi alle filene filendelsen .pdf

Flere av nedlastningene feilet med meldingen "Unable to establish SSL connection." men da trengte jeg bare å kjøre kommandoen på nytt og siden jeg hadde flagget "-nc" ble alle filer som allerede var lastet ned hoppet over med meldingen "File '<filnavn>' already there; not retrieving."

Noen av filene ble korrupt, og måten jeg sjekket hvilke filer som var korrupt på en enkel måte var å åpne alle 370 filene i Adobe Acrobat DC med "Scan & OCR" hvor jeg fikk beskjed om hvilke filer som var herpa. Jeg lasted ned disse på nytt. Jeg kjørte _ikke_ OCR på noen av filene siden nasjonalbiblioteket allerede har OCR på pdf-filene, brukte bare Adobe Acrobat DC for å finne ut hvilke filer som var herpa.
Sist endret av Turbolego; 31. desember 2021 kl. 12:02. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
▼ ... over en uke senere ... ▼
Flyttet og byttet, rotet og rørt.
Skrevet om og omorganisert litt på koden.
Testet en del, og ser ut til at det ikke skal være noe bugs igjen.

Største synlige endringer er at pdf nå genereres etter at alle bildene er lastet ned, og det er lagt til en funksjon for å resize bilder (og da også pdf'er), for å spise litt mindre diskplass på unødvendig store bilder.

Bak kulissene er det nå mulighet å importere nbno.py som bibliotek i eget script, eks:

Kode

from nbno import Book
bok = Book("digibok_2007091701011")
bok.set_resize(50)
bok.download()
bok.make_pdf()
NBNO.py
Setter pris på tilbakemeldinger og ønsker.
Sist endret av Lanjelin; 10. januar 2022 kl. 01:45.
Jump to Lightspeed!

Endelig satt meg litt inn i threading, og samtidig lagt inn timeout og retry på bildedeler som henger seg opp ved nedlasting.

Resultatet etter utallige tester, er at bøker med litt sideantall, for meg lastes ned mellom 20 og 30 ganger kjappere enn før.
Dette vil variere litt med maskinvare da det nå spiser litt mer resurser for å kjøre, og tar utgangspunkt i antall kjerner på maskinen.

Sitat av digibok_2007042601070, 204 sider
Tidligere:
--- 355.92217111587524 seconds ---
Macbook:
--- 12.06975507736206 seconds ---
Raspberry Pi4:
--- 52.63932681083679 seconds ---
Vis hele sitatet...
NBNO.py
Sist endret av Lanjelin; 14. januar 2022 kl. 23:36.
▼ ... mange måneder senere ... ▼
Hei alle sammen, jeg lurer på hva som er riktig URL til boksidebilder på NB for tiden. Jeg tittet på kildekoden til Python-programmet ditt, Lanjelin, men ble ikke klok.

https://www.nb.no/services/image/res...ileHeight=1024

Er det sånn det er? Kan ikke prøve det selv for bor ikke i Norge. Får man uten videre opp boksidebildet hvis man limer dette inn på adresselinja i nettlesern? Eller trenger man noen http headere også, utover en rimelig User-Agent?

Det lykkes meg å få opp bildet for bøker som alle har adgang til. Er det noen forskjell på disse og dem som bare folk i Norge får se? Jeg mener URL og/eller http headere. Kan tenke meg at det er noen sikkerhetsgreier for Norges-bøkene.
Sitat av Slaraffenland Vis innlegg
Hei alle sammen, jeg lurer på hva som er riktig URL til boksidebilder på NB for tiden. Jeg tittet på kildekoden til Python-programmet ditt, Lanjelin, men ble ikke klok.

https://www.nb.no/services/image/res...ileHeight=1024

Er det sånn det er? Kan ikke prøve det selv for bor ikke i Norge. Får man uten videre opp boksidebildet hvis man limer dette inn på adresselinja i nettlesern? Eller trenger man noen http headere også, utover en rimelig User-Agent?

Det lykkes meg å få opp bildet for bøker som alle har adgang til. Er det noen forskjell på disse og dem som bare folk i Norge får se? Jeg mener URL og/eller http headere. Kan tenke meg at det er noen sikkerhetsgreier for Norges-bøkene.
Vis hele sitatet...
URL'en du postet viser et utsnitt av siden, på 1024x1024px.

Satte meg litt inn i API'et de bruker, og endte opp med å bruke linker som denne: https://www.nb.no/services/image/res...l/0/native.jpg
Utsnitt av forsiden: 1 - 2 - 3 - 4

Laster fortsatt, og setter sammen, bildebiter på 1024x1024px, men fra full oppløsning.
Informasjon om hver side, og antall sider henter jeg fra tilhørende manifest: https://api.nb.no/catalog/v1/iiif/UR...03004/manifest

Virker som den eneste sjekken de gjør er på IP.
IP lokalisert innenfor Norge, får tilgang til å lese bøker merket "Tilgang for norske IP-addresser"
IP lokalisert på biblioteket får tilgang til å lese bøker merket "Tilgang under bestemte vilkår"
Her har de skrevet litt om det.

Har sett at VPN til norge visstnok fungerer for å vise bøker en kun har tilgang til i norge.

Sist jeg sjekket var det ikke behov for noen form for header egentlig.
Sist endret av Lanjelin; 30. desember 2022 kl. 17:22.
Førstefiskevasker
Barte-Sam's Avatar
Spennende tråd! Jeg har i flere år hatt et egenutviklet verktøy skrevet i NodeJS, som bruker nb.no sitt API for å hente ned tiles som jeg så kombinerer til sider, kjører OCR på lokalt, og til slutt kombinerer til én stor, søkbar PDF. Verktøyet mitt har en del avhengigheter, som Postgres, Tesseract OCR, og diverse PDF-verktøy. Jeg har lenge hatt en plan om å lage et Docker-image som lar deg kjøre verktøyet uten å måtte installere alle disse verktøyene selv på forhånd.

Jeg kan godt tenke meg å dele kode, men først må jeg nok rydde litt opp i den.
Sitat av Slaraffenland Vis innlegg
Hei alle sammen, jeg lurer på hva som er riktig URL til boksidebilder på NB for tiden. Jeg tittet på kildekoden til Python-programmet ditt, Lanjelin, men ble ikke klok.

https://www.nb.no/services/image/res...ileHeight=1024

Er det sånn det er? Kan ikke prøve det selv for bor ikke i Norge. Får man uten videre opp boksidebildet hvis man limer dette inn på adresselinja i nettlesern? Eller trenger man noen http headere også, utover en rimelig User-Agent?

Det lykkes meg å få opp bildet for bøker som alle har adgang til. Er det noen forskjell på disse og dem som bare folk i Norge får se? Jeg mener URL og/eller http headere. Kan tenke meg at det er noen sikkerhetsgreier for Norges-bøkene.
Vis hele sitatet...
Sitat av Barte-Sam Vis innlegg
Spennende tråd! Jeg har i flere år hatt et egenutviklet verktøy skrevet i NodeJS, som bruker nb.no sitt API for å hente ned tiles som jeg så kombinerer til sider, kjører OCR på lokalt, og til slutt kombinerer til én stor, søkbar PDF. Verktøyet mitt har en del avhengigheter, som Postgres, Tesseract OCR, og diverse PDF-verktøy. Jeg har lenge hatt en plan om å lage et Docker-image som lar deg kjøre verktøyet uten å måtte installere alle disse verktøyene selv på forhånd.

Jeg kan godt tenke meg å dele kode, men først må jeg nok rydde litt opp i den.
Vis hele sitatet...
Har også vært i tenkeboksen om å bygge videre på koden, lage en web-frontend i flask, og OCR vha pytesseract, og til slutte pakke alt i et container image.

Tiden har dessverre ikke strukket helt til, og det dukker opp alskens rare småprosjekt i mellomtiden.

Er uhyre sjeldent jeg faktisk bruker koden selv, har nok muligens også noe med prioriteringen å gjøre.
Førstefiskevasker
Barte-Sam's Avatar
Sitat av Lanjelin Vis innlegg
Har også vært i tenkeboksen om å bygge videre på koden, lage en web-frontend i flask, og OCR vha pytesseract, og til slutte pakke alt i et container image.

Tiden har dessverre ikke strukket helt til, og det dukker opp alskens rare småprosjekt i mellomtiden.
Vis hele sitatet...
Jeg kjenner meg igjen i det der
Sist endret av Barte-Sam; 30. desember 2022 kl. 18:29.
Sitat av Lanjelin Vis innlegg
URL'en du postet viser et utsnitt av siden, på 1024x1024px.

Satte meg litt inn i API'et de bruker, og endte opp med å bruke linker som denne: https://www.nb.no/services/image/res...l/0/native.jpg
Utsnitt av forsiden: 1 - 2 - 3 - 4

Laster fortsatt, og setter sammen, bildebiter på 1024x1024px, men fra full oppløsning.
Informasjon om hver side, og antall sider henter jeg fra tilhørende manifest: https://api.nb.no/catalog/v1/iiif/UR...03004/manifest

Virker som den eneste sjekken de gjør er på IP.
IP lokalisert innenfor Norge, får tilgang til å lese bøker merket "Tilgang for norske IP-addresser"
IP lokalisert på biblioteket får tilgang til å lese bøker merket "Tilgang under bestemte vilkår"
Her har de skrevet litt om det.

Har sett at VPN til norge visstnok fungerer for å vise bøker en kun har tilgang til i norge.

Sist jeg sjekket var det ikke behov for noen form for header egentlig.
Vis hele sitatet...
Takk for raskt svar, Lanjelin. Da virker altså URLen min? Du får opp boksidebildet i nettlesern og blir ikke avvist/blokkert?

Når du sier at du får se et utsnitt blir jeg litt forvirret. Får du ikke se hele boksiden? Bare en del av den? Er ikke 1024x1024 oppløsningen?

Hva viser URLene du skrev opp? Hele siden eller bare en del av den? Med hvilken oppløsning? Jeg vil IKKE har for høy oppløsning, for da tar det bare masse tid å laste ned. Jeg vil ha en hel side returnert på en gang.

Det jeg akter å gjøre er å laste ned en hel bok med skript. Ikke bare en men mange, så de bør ikke ta mer plass enn nødvendig.

Jeg har prøvd alle gratis-proxyer i Norge jeg har kunnet finne, men de er blokkert alle sammen, så NB har en svarteliste. VPN koster i alle tilfelle penger, og jeg gidder ikke betale bare for å finne ut at NB blokkerer deres servere i Norge. Dessuten liker jeg ikke å laste ned programvare og kjøre den på min maskin. VPN er feil tjeneste når man bare trenger norsk IP.

Jeg tar ditt svar til inntekt for at det ikke er noen forskjell på hva man får se med URLer for alle og URLer for nordmenn. URL-språket er det samme og bildet det samme. Ja? Og ingen headere eller sikkerhet forøvrig.

Sitat av Barte-Sam Vis innlegg
Spennende tråd! Jeg har i flere år hatt et egenutviklet verktøy skrevet i NodeJS, som bruker nb.no sitt API for å hente ned tiles som jeg så kombinerer til sider, kjører OCR på lokalt, og til slutt kombinerer til én stor, søkbar PDF. Verktøyet mitt har en del avhengigheter, som Postgres, Tesseract OCR, og diverse PDF-verktøy. Jeg har lenge hatt en plan om å lage et Docker-image som lar deg kjøre verktøyet uten å måtte installere alle disse verktøyene selv på forhånd.

Jeg kan godt tenke meg å dele kode, men først må jeg nok rydde litt opp i den.
Vis hele sitatet...
Det ville være nyttigere om du laget et API så nordmenn utenlands kan bestille denne tjenesten og få levert en bok som en pdf. Men da må du installere koden din på en webserver. Vet ikke om det går an å lage dette på rapidapi.com .

Sitat av Lanjelin Vis innlegg
Har også vært i tenkeboksen om å bygge videre på koden, lage en web-frontend i flask, og OCR vha pytesseract, og til slutte pakke alt i et container image.

Tiden har dessverre ikke strukket helt til, og det dukker opp alskens rare småprosjekt i mellomtiden.

Er uhyre sjeldent jeg faktisk bruker koden selv, har nok muligens også noe med prioriteringen å gjøre.
Vis hele sitatet...
Som jeg sa til Sam ville en webtjeneste med API være nyttigere enn skriptet selv, da dette ikke hjelper nordmenn utenlands.
Sist endret av Slaraffenland; 30. desember 2022 kl. 18:50. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Sitat av Slaraffenland Vis innlegg
Takk for raskt svar, Lanjelin. Da virker altså URLen min? Du får opp boksidebildet i nettlesern og blir ikke avvist/blokkert?

Når du sier at du får se et utsnitt blir jeg litt forvirret. Får du ikke se hele boksiden? Bare en del av den? Er ikke 1024x1024 oppløsningen?

Hva viser URLene du skrev opp? Hele siden eller bare en del av den? Med hvilken oppløsning? Jeg vil IKKE har for høy oppløsning, for da tar det bare masse tid å laste ned. Jeg vil ha en hel side returnert på en gang.

Det jeg akter å gjøre er å laste ned en hel bok med skript. Ikke bare en men mange, så de bør ikke ta mer plass enn nødvendig.

Jeg har prøvd alle gratis-proxyer i Norge jeg har kunnet finne, men de er blokkert alle sammen, så NB har en svarteliste. VPN koster i alle tilfelle penger, og jeg gidder ikke betale bare for å finne ut at NB blokkerer deres servere i Norge. Dessuten liker jeg ikke å laste ned programvare og kjøre den på min maskin. VPN er feil tjeneste når man bare trenger norsk IP.

Jeg tar ditt svar til inntekt for at det ikke er noen forskjell på hva man får se med URLer for alle og URLer for nordmenn. URL-språket er det samme og bildet det samme. Ja? Og ingen headere eller sikkerhet forøvrig.



Det ville være nyttigere om du laget et API så nordmenn utenlands kan bestille denne tjenesten og få levert en bok som en pdf. Men da må du installere koden din på en webserver. Vet ikke om det går an å lage dette på rapidapi.com .



Som jeg sa til Sam ville en webtjeneste med API være nyttigere enn skriptet selv, da dette ikke hjelper nordmenn utenlands.
Vis hele sitatet...
Du har helt rett, linken din gir nedskalert versjon av bildet, fullside med oppløsning på 459x790
En stund siden jeg kikket på den formuleringen av url'ene, har fokusert på full-kvalitetsbilder i det siste, og heller lagt til en funksjon for å nedskalere dem på klientside da multithreading gjør det hele til en nokså kjapp prosess uansett.

Har ikke noen umiddelbare planer om å jobbe noe veldig mye videre utover å vedlikeholde koden, og en docker utgave med webgui er heller ikke det samme som at jeg gidder å hoste en kjørbar utgave av koden.

Hvor er du fra forøvrig?
Teksten du skriver virker nesten å være kjørt gjennom google translate.
▼ ... noen måneder senere ... ▼
[quote=Turbolego;3744263]Min workflow for å laste ned 370 programrapporter:
[list=1][*]Eksempel-søk: beta.nb.no/search?q=%22Musikk%20Under%22~5%20OR%20%22Under%20Stjernene% 22~5%20AND%20%22Are%20Lund%22~5&mediatype=programrapporter&s ort=dateasc&fromDate=19840101&toDate=20211231

Bra tiltak, hører på youtube. men får ikke tilgang til programrapportene fra nb. Så leser jeg at
På Nasjonalbiblioteket
Programrapporter fra NRK er kun tilgjengelige for forskning og dokumentasjonsarbeid i Nasjonalbibliotekets lokaler.
Har de endra tilgangen, eller går det med en sånn forskningstilgang en kan søke om, 8 timer av gangen?

Har du andre lister enn "musikk under stjernene"? i tekst eller pdf?
Det var mye bra musikk i HALs programmer, det er ting jeg gjerne skulle prøvd å finne igjen, finne navnet på. Det skulle kanskje vært en nettside for alle spillelistene - "Radioskopet", "studio 84", "Blå minutter, "Regnbuen", "Grå minutter", "Musikk under stjernene", "Roxrevyen", "Piggtrådpaviljongen"....
Sitat av Lanjelin Vis innlegg
Flyttet og byttet, rotet og rørt.
NBNO.py
Setter pris på tilbakemeldinger og ønsker.
Vis hele sitatet...
Hei! Hva kan jeg ha gjort feil når jeg får følgende feilmelding?

PS C:\Users\bruker\Downloads\NBNO.py-master\NBNO.py-master> python nbno.py --id 2008071704082
Traceback (most recent call last):
File "C:\Users\bruker\Downloads\NBNO.py-master\NBNO.py-master\nbno.py", line 443, in <module>
main()
File "C:\Users\bruker\Downloads\NBNO.py-master\NBNO.py-master\nbno.py", line 401, in main
book = Book(args.id)
^^^^^^^^^^^^^
File "C:\Users\bruker\Downloads\NBNO.py-master\NBNO.py-master\nbno.py", line 25, in __init__
self.media_type = "dig" + digimedie.split("dig")[1].split("_")[0]
~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
Sitat av Determegja Vis innlegg
Hei! Hva kan jeg ha gjort feil når jeg får følgende feilmelding?

PS CUsers\bruker\Downloads\NBNO.py-master\NBNO.py-master> python nbno.py --id 2008071704082
Traceback (most recent call last):
File "CUsers\bruker\Downloads\NBNO.py-master\NBNO.py-master\nbno.py", line 443, in <module>
main()
File "CUsers\bruker\Downloads\NBNO.py-master\NBNO.py-master\nbno.py", line 401, in main
book = Book(args.id)
^^^^^^^^^^^^^
File "CUsers\bruker\Downloads\NBNO.py-master\NBNO.py-master\nbno.py", line 25, in __init__
self.media_type = "dig" + digimedie.split("dig")[1].split("_")[0]
~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
Vis hele sitatet...
Tipper du har brukt scriptet før, og ikke har fått med deg endringen som ble gjort for et stykke tid siden, da støtte for de fleste medier ble lagt til?

Eneste påkrevde argumentet er ID, som finnes ved å trykke Referere/Sitere for så å kopiere alt av tekst og tall etter no-nb_ eks. digitidsskrift_202101..etc --> python3 nbno.py --id digitidsskrift_202101..etc
Vis hele sitatet...
Bør nok se om jeg får lagt inn litt mer informativ feilmelding her om/når/hvis jeg oppdaterer koden neste gang.
Sist endret av Lanjelin; 15. april 2023 kl. 19:23.
Sitat av Lanjelin Vis innlegg
Tipper du har brukt scriptet før, og ikke har fått med deg endringen som ble gjort for et stykke tid siden, da støtte for de fleste medier ble lagt til?



Bør nok se om jeg får lagt inn litt mer informativ feilmelding her om/når/hvis jeg oppdaterer koden neste gang.
Vis hele sitatet...
Det er faktisk første gang jeg tester skriptet nå. Kom over det tilfeldigvis i dag under på jakt etter måter å laste ned bøker på.

Når jeg prøver det endrede skriptet, får jeg:

«404 Client Error: Not Found for url: https://api.nb.no/catalog/v1/iiif/UR...02101/manifest
Laster ned digitidsskrift med ID: 202101.

Noe gikk galt, du prøvde å laste ned digitidsskrift, med id 202101, er dette korrekt?»

Det opprettes en mappe for tidsskriftet, men den er tom.
Sitat av Determegja Vis innlegg
Det er faktisk første gang jeg tester skriptet nå. Kom over det tilfeldigvis i dag under på jakt etter måter å laste ned bøker på.

Når jeg prøver det endrede skriptet, får jeg:

«404 Client Error: Not Found for url: https://api.nb.no/catalog/v1/iiif/UR...02101/manifest
Laster ned digitidsskrift med ID: 202101.

Noe gikk galt, du prøvde å laste ned digitidsskrift, med id 202101, er dette korrekt?»

Det opprettes en mappe for tidsskriftet, men den er tom.
Vis hele sitatet...
Nå har du ikke lagt med hva du faktisk kjørte når du fikk denne feilmeldingen, men det ser ut til at tidsskriften ikke eksisterer, derfor en 404 Error. Normalt virker tallrekken å være lengre, har du fått med deg alt?

Sitat av https://api.nb.no/catalog/v1/iiif/URN:NBN:no-nb_digitidsskrift_202101/manifest
NOT FOUND
Vis hele sitatet...
Sitat av https://www.nb.no/items/URN:NBN:no-nb_digitidsskrift_202101_001
Vi fant ikke objektet du lette etter
Vis hele sitatet...
Sist endret av Lanjelin; 15. april 2023 kl. 19:40.
Sitat av Lanjelin Vis innlegg
Nå har du ikke lagt med hva du faktisk kjørte når du fikk denne feilmeldingen, men det ser ut til at tidsskriften ikke eksisterer, derfor en 404 Error. Normalt virker tallrekken å være lengre, har du fått med deg alt?
Vis hele sitatet...
Panneklask! Ja, jeg som ikke hadde fått med hele ID-en. Takk for hjelp og oppklaring. Dette var flaut
▼ ... mange måneder senere ... ▼
@Lanjelin Hi, I am currently learning Norwegian and was looking to find a way of getting books from Nb.no so I can read and translate the words as I go, and found this post... but the problem is that I may or not be an aging boomer , so is it possible for someone to walk me through setting this up step by step? If not I understand, I'll keep looking. Thanks
Sist endret av Bobburger; 14. januar 2024 kl. 13:00.
I managed to figure it out... Thank you so much for this, it's a great help!