Leone25 / booktab-downloader

A python script to download you Zanichelli books from web Booktab as PDFs
MIT License
41 stars 6 forks source link

Problem with a book #6

Closed aleeessio closed 3 years ago

aleeessio commented 3 years ago

-5861960593706170177_121.jpg

Mi da questo errore..non so perché. Con tutti gli altri libri ha funzionato tranquillamente. Grazie in anticipo :)

Leone25 commented 3 years ago

Sembra esserci stato un errore nel parsing del pdf della pagina

Così su due piedi non ti saprei dire da che cosa è causato

Potrebbe essere che il pdf della pagina in questione fornito da booktab non sia ben formattato o che non sia un pdf proprio e per qualunque motivo il programma pensa che lo sia

Devi un po' a provare a fare debugging tu. Ti consiglio di loggare in console i link che il programma cerca di scaricare e l'ultimo su cui ti da errore sarà quello che non va. Usa poi uno strumento come talented (è un estensione per browser) per simulare la richiesta (con tanto di cookie) e vedi cos'ha che non va il pdf.

Da li puoi provare a capire te o altrimenti provo a darti una mano io

aleeessio commented 3 years ago

Sembra esserci stato un errore nel parsing del pdf della pagina

Così su due piedi non ti saprei dire da che cosa è causato

Potrebbe essere che il pdf della pagina in questione fornito da booktab non sia ben formattato o che non sia un pdf proprio e per qualunque motivo il programma pensa che lo sia

Devi un po' a provare a fare debugging tu. Ti consiglio di loggare in console i link che il programma cerca di scaricare e l'ultimo su cui ti da errore sarà quello che non va. Usa poi uno strumento come talented (è un estensione per browser) per simulare la richiesta (con tanto di cookie) e vedi cos'ha che non va il pdf.

Da li puoi provare a capire te o altrimenti provo a darti una mano io

Ok quindi è più complicato. Che comando devo usare per loggare i link in console..e i link quali sarebbero? Devo usare sempre pyhton o vado di javascript con node e uso console.log () ? Chiedo scusa..purtroppo sono ancora alle prime armi 😅

Leone25 commented 3 years ago

nessun problema

non sono gran che in python neanch'io, l'unico motivo per cui l'ho usato era per bypassare i cors e perch'è mi facilitava l'unione dei pdf.

per il debugging aggiungi print('http://web.booktab.it/boooks_web/'+isbn+'/'+part.getAttribute("btbid")+'/'+pdfUrl) a linea 98 e poi esegui lo script come sempre

poi guarda qual è l'ultimo link che ti viene dato in console prima dell'errore

installa l'estensione Talented nel tuo browser e aprila cliccando sulla sua icona in alto a destra. Nell'interfaccia di Talented inserisci l'ultimo link che ti ha dato la console ed inserisci un header(in centro destra) dandogli un nome di Cookie(spazio a sinistra) e a destra inserisci _shibsession_626f6f6b746162776562687474703a2f2f7765622e626f6f6b7461622e69742f73686962626f6c657468= completando dopo l'uguale con lo stesso shibsession che inserisci nel programma normalmente; premi "invia" (in alto a destra a fianco del tuo link) e vedi cosa ti risulta in basso. Se hai un codice 200 tutto bene, dovrebbe comparirti li sotto il un tasto per salvare il file, una volta salvato guarda il file e da li devi avere un po' di inventiva te per capire cosa c'è che non va. Se hai un codice 404 significa che il contenuto che si sta cercando di accedere non esiste quindi è probabile che delle risorse del libro siano mancanti quindi è un casino per ignorarlo, ma ce ne occupiamo solo si presenta il problema. Codice 400 o 403 hai cannato qualcosa inserendo i dati, prova a ricontrollare, se continua a non andare torna qua.

spero che riesca ad aiutarti

aleeessio commented 3 years ago

Ho aggiunto la stringa alla riga 98 però quando faccio partire lo script mi da questo:

pdf = requests.get('http://web.booktab.it/boooks_web/'+isbn+'/'+part.getAttribute("btbid")+'/'+pdfUrl, headers={'Cookie':'_shibsession_626f6f6b746162776562687474703a2f2f7765622e626f6f6b7461622e69742f73686962626f6c657468='+cookie}) IndentationError: unexpected indent

Leone25 commented 3 years ago

devi indentare il codice correttamente, dovrebbero essere 4 spazzi per essere giusto

aleeessio commented 3 years ago

devi indentare il codice correttamente, dovrebbero essere 4 spazzi per essere giusto

Ok ha funzionato..ho preso i link e aggiunto l'header e ho ricevuto 200 OK..ho scaricato il file, che è un pdf, con le pagine del libro..tuttavia sono solo quelle dell'indice

Leone25 commented 3 years ago

Ottimo

È normale che si tratti solo dell'indice

È probabile che il pdf non sia formattato correttamente ed è per quello che ti da quell'errore

Non saprei come risolvere da qui.

Al massimo contattami in privato su twitter (mi chiamo nello stesso modo che qua con un 03 extra alla fine)

aleeessio commented 3 years ago

Ottimo

È normale che si tratti solo dell'indice

È probabile che il pdf non sia formattato correttamente ed è per quello che ti da quell'errore

Non saprei come risolvere da qui.

Al massimo contattami in privato su twitter (mi chiamo nello stesso modo che qua con un 03 extra alla fine)

Non è meglio telegram? Sennò va bene anche lì