Sto cercando di analizzare il codice html indicato sotto utilizzando lxml.html
e utilizzando CSSSelector
anziché XPath
.Python: selettore CSS da utilizzare all'interno di lxml.cssselect
link = doc.cssselect('html body div.results dl dt a)
il codice di cui sopra mi sta dando content-1
e content-2
come uscita ma il mio output desiderato è link 1 link 2
. Così ho sostituito il mio codice con
link = doc.cssselect('html body div.results dl dt a[href]')
ma sto ancora ottenendo lo stesso risultato. Quindi la mia domanda è qual è il corretto selettore CSS per ottenere l'attributo href.
<div class = "results">
<div> some tags here </div>
<dl>
<dt title = "My Title 1" style = "background: transparent url('/img/accept.png') no-repeat right center">
<a href = "/link 1"> content-1</a>
</dt>
</dl>
<dl>
<dt title = "My Title 2" style = "background: transparent url('/img/accept.png') no-repeat right center">
<a href = "/link 2">content-2</a>
</dt>
</dl>
</div>
Ho appena capito da solo.Comunque grazie per la risposta – RanRag
@brandizzi, hai ragione - puoi selezionare solo elementi in css, non attributi - le parentesi servono per filtrare quali elementi selezionare (ma non è una cattiva idea selezionare solo i tag senza attributi href (che è ciò che fa [href]) –
@RanRag, dovresti spuntare la risposta di brandizzi come corretta anche se alla fine non ne avevi bisogno. –