Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-01-2009, 13:54   #1
guldo76
Senior Member
 
L'Avatar di guldo76
 
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2598
[Python] XML, parsing HTML, HTML INPUT

Ciao,
avete presente aNobii?
http://www.anobii.com/
Io lo adoro! Ma non divaghiamo. Ho un sacco di libri nella wish list, cioè libri che non ho, ma desidero leggere prima o poi. Ogni tanto li cerco sui siti online di vendita di libri; molti si trovano facilmente, altri meno.
Mi è venuta la voglia, durante questi giorni di feste, di scrivere uno script che andasse in giro a cercare i libri per me. Inizialmente speravo di cavarmela molto facilmente, ma la cosa si è un po' complicata strada facendo, soprattutto perché non tutti i siti ti permettono di cercare per ISBN...
Se volete avere un'idea di cosa intendo, aprite dall'allegato il file anobii.txt (input), quindi libreria.xml (output).

Purtroppo ho almeno tre problemi... che metto tutti qui in un'unica discussione
  1. Come si può inserire il riferimento a un xsl all'interno di un xml? Per il momento l'ho fatto brutalmente aprendo il file xml come fosse un file di testo qualunque e andando a scriverci forzatamente l'istruzione apposita. È piuttosto brutta come soluzione, possibile non ce ne sia una migliore?
  2. L'ultima istruzione del seguente blocco può andare in errore:
    Codice:
    response = urllib2.urlopen(self.url)  
    forms = ClientForm.ParseResponse(response, backwards_compat=False)  
    form = forms[1]  
    if self.titolo: form["query_title"]  = self.titolo  
    if self.autore: form["query_author"] = self.autore  
    if self.isbn  : form["query_code"]   = self.isbn  
    form["query_shelf"] = (p_lang,)  
    form["query_category"] = ("AAA",)  
    form["query_availability"] = ("ALL",)  
    page = urlopen(form.click()).read()
    restituendo il tipico errore:
    Codice:
    'ascii' codec can't encode character u'\xf6' in position 17: ordinal not in range(128)
  3. Ho trovato una pagina html in cui gli elementi INPUT non sono inseriti all'interno di una FORM... Quindi non ho idea di come possa fare a eseguire nel programma la compilazione dei campi di testo e il click sul tastino submit... cosa che se fossero in una FORM potrei fare con ClientForm (vedi punto 2)

Avete qualche suggerimento?
Allegati
File Type: zip cercaLibri.zip (12.6 KB, 4 visite)
guldo76 è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2009, 15:47   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
1) Non ho usato la libreria più avanzata di Python per quanto riguarda la manipolazione di XML, ma ti assicuro che è molto ben fornita. Sicuramente ci sarà un libreria che ti permette di fare ciò che chiedi.

2). L'errore sta nella urlopen().read() o nella form.click() ? Prova a riscrivere quel codice così:
Codice:
Link = form.click()
page = urlopen(Link).read()
e vedi se il problema sta nella prima o nella seconda riga, possibilmente riportando anche il valore di Link.

3). Può essere una pagina che fa uso di Flash? Perché con l'HTML standard tutti i valori di input stanno in una qualche forma, per cui i valori li puoi sempre prelevare.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2009, 21:02   #3
guldo76
Senior Member
 
L'Avatar di guldo76
 
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2598
Grazie dell'aiuto

Quote:
Originariamente inviato da cdimauro Guarda i messaggi
1) Non ho usato la libreria più avanzata di Python per quanto riguarda la manipolazione di XML, ma ti assicuro che è molto ben fornita. Sicuramente ci sarà un libreria che ti permette di fare ciò che chiedi.
Ho trovato una libreria che mi permette di applicare lo stile, nel senso di generare un file html elaborando l'xml in base a quello stile. Io però vorrei un file xml con la riga:
<?xml-stylesheet type="text/xsl" href="libreria.xsl"?>
e questo non riesco a capire come farlo...

Quote:
Originariamente inviato da cdimauro Guarda i messaggi
2). L'errore sta nella urlopen().read() o nella form.click() ? Prova a riscrivere quel codice così:
Codice:
Link = form.click()
page = urlopen(Link).read()
e vedi se il problema sta nella prima o nella seconda riga, possibilmente riportando anche il valore di Link.
Risolto. Il form voleva i parametri in latin1, non in unicode.
È quindi bastato aggiungere
.encode("latin-1")
al valore da scrivere nella casella di testo della form.

Quote:
Originariamente inviato da cdimauro Guarda i messaggi
3). Può essere una pagina che fa uso di Flash? Perché con l'HTML standard tutti i valori di input stanno in una qualche forma, per cui i valori li puoi sempre prelevare.
È una pagina asp. Questa:
http://www.hoepli.it/avanzata.asp
L'ho guardata col DOM inspector, e non mi pare proprio che i campi INPUT siano inseriti in una FORM... Porc...
Può darsi che il programmatore che ha scritto quella pagina ASP se n'è fregato degli standard... (strano, eh?!)
guldo76 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 07:37   #4
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da guldo76 Guarda i messaggi
Grazie dell'aiuto
Figurati. Anzi, mi spiace risponderti soltanto adesso ma ho avuto un po' da fare in questi giorni.
Quote:
Ho trovato una libreria che mi permette di applicare lo stile, nel senso di generare un file html elaborando l'xml in base a quello stile. Io però vorrei un file xml con la riga:
<?xml-stylesheet type="text/xsl" href="libreria.xsl"?>
e questo non riesco a capire come farlo...
Hum. E' un tag speciale. Non credo sia direttamente gestibile come un qualunque nodo.

Però, come ti dicevo, non ho esperienza con le altre librerie (sono tante), ed è molto probabile che riescano a gestire anche questo caso.
Quote:
Risolto. Il form voleva i parametri in latin1, non in unicode.
È quindi bastato aggiungere
.encode("latin-1")
al valore da scrivere nella casella di testo della form.
Infatti. Era sicuramente un problema di encoding, ma volevo capire da dove arrivava.
Quote:
È una pagina asp. Questa:
http://www.hoepli.it/avanzata.asp
L'ho guardata col DOM inspector, e non mi pare proprio che i campi INPUT siano inseriti in una FORM... Porc...
Può darsi che il programmatore che ha scritto quella pagina ASP se n'è fregato degli standard... (strano, eh?!)
Veramente vedo diverse form, e ci sono anche i controlli di input per la ricerca. Guarda qui:
Codice HTML:
					<form action="cercato.asp" method="post" name="frmAdvBooxter">
						<input type="hidden" name="ft" value="adv">
					<td align="center" valign="top" width="646">
								<br>
								<!-- QUI INCLUDE BANNER -->
						<table width="612" border="0" cellspacing="0" cellpadding="0">
							<tr>
								<td colspan="2" width="155"><img src="img/tit_avanzata.gif" alt="" height="18" width="155" border="0"></td>
								<td align="right" width="350" background="img/px_riga.gif"><img src="img/px_riga.gif" alt="" height="18" width="1" border="0"></td>
								<td colspan="2" width="107" background="img/px_riga.gif" align="right"><img src="/img/angolo_dx.gif" border="0"></td>
							</tr>
							<tr>
								<td width="1" height="20" background="img/px_blu.gif"><img src="img/px_blu.gif" alt="" height="1" width="1" border="0"></td>
								<td colspan="3" align="center" width="610" height="20">
									<table width="96%" border="0" cellspacing="0" cellpadding="0">
										<tr>
											<td class="testo_blu"><br><b>Cerca tra gli oltre 500.000 libri</b> presenti nella <a href="http://www.hoepli.it/libreriainternazionale.asp">Grande Libreria Online</a> <a href="http://www.hoepli.it"><span class="testo_blu2_b">HOEPLI<font color="#6495ed">.it</font></span></a> digitando una o pi&ugrave; parole nei campi sottostanti.  
											</td>
										</tr>
									</table>
									<br>
									<table width="96%" border="0" cellspacing="2" cellpadding="3">
										<tr>
											<td class="testo_piccolo" width="458"><span class="testo_piccolo"><b>TITOLO</b> (PAROLE CONTENUTE NEL TITOLO O NEL SOTTOTITOLO)<br>
												</span><input type="text" name="bytit" size="50" border="0"></td>
												<td class="testo_piccolo" width="109"></td>
											</tr>
										<tr>
											<td class="testo_piccolo" width="458"><b>AUTORE</b><br>
												<input type="text" name="byaut" size="50" border="0"></td>
												<td class="testo_piccolo" width="109"></td>
											</tr>
										<tr>
											<td class="testo_piccolo" width="458"><b>EDITORE</b><br>
												<input type="text" name="byed" size="50" border="0"></td>
												<td class="testo_piccolo" width="109"></td>
											</tr>
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 23:15   #5
guldo76
Senior Member
 
L'Avatar di guldo76
 
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2598
Ho lasciato perdere il DOM inspector, e sono andato a guardarmi il codice nudo e crudo, come hai fatto tu.
E sono inorridito, di fronte a quello spettacolo!
In pratica la form c'è, ma in questo modo terrificante:
Codice:
</td>
<form action="cercato.asp" method="post" name="frmAdvBooxter">
  <input type="hidden" name="ft" value="adv">
<td align="center" valign="top" width="646">

Per forza che ClientForm non riesce a capire che c'è quella form! Non posso certo dargli torto...

Infatti se con l'extension per firefox "webdeveloper" faccio "visualizza sorgente generato", webdeveloper mi chiuder il tag:
Codice:
</td>
<form action="cercato.asp" method="post" name="frmAdvBooxter"></form>
<span title="&lt;input name=&quot;ft&quot;&gt;" class="webdeveloper-display-form-details">&lt;input name="ft"&gt;</span>
<input class="webdeveloper-unhidden" name="ft" value="adv" type="text">
<td align="center" valign="top" width="646">
Ma chi l'ha fatto 'sto sito, da cui mai e poi mai comprerò alcunché?
Meglio andarci fisicamente, alla Hoepli.
Pensa te...

Ultima modifica di guldo76 : 08-01-2009 alle 23:25.
guldo76 è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 07:12   #6
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
La cosa strana è che il DOM inspector avrebbe dovuto trovarti in ogni caso il form e i controlli di input.

Comunque concordo: è un sito realizzato veramente male.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
Starship: SpaceX potrebbe tentare di rec...
Federico Veronesi vince i Wildlife Photo...
Samsung Galaxy bloccati dopo l'aggiornam...
L'UE prolunga il periodo di test del pro...
Offerte Amazon di oggi: e-bike da 616€, ...
La missione cino-europea ESA Smile ha in...
Cisco sulle tracce dell’IA nei malware: ...
Nuovo Codice della strada: stop alla PEC...
Blue Origin Constellation Park: un nuovo...
E-bike da 615€ su Amazon: Bodywel F20PRO...
Windows 11 24H2, stop al supporto per Ho...
Gemini 4 Argon disponibile per tutti: co...
Sony avrebbe chiuso Overdrive, lo store ...
Abbiamo scattato con OPPO Find X10 Pro M...
Fino a 21 miliardi per i chip americani:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:43.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v