Estoy tratando de analizar la figura a continuación código html usando lxml.html
y usando en lugar de CSSSelector
XPath
.Python: Selector de CSS para usar en el interior lxml.cssselect
link = doc.cssselect('html body div.results dl dt a)
el código de arriba me está dando content-1
y content-2
como salida pero mi salida deseada es link 1 link 2
. Así que reemplacé mi código con
link = doc.cssselect('html body div.results dl dt a[href]')
pero todavía obtengo el mismo resultado. Entonces mi pregunta es cuál es el selector de CSS adecuado para obtener el atributo 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>
Acabo de descubrirlo por mi cuenta.De todas formas gracias por la respuesta – RanRag
@brandizzi, tienes razón; solo puedes seleccionar elementos en css, no en atributos. Los paréntesis son para filtrar qué elementos seleccionar (pero no es una mala idea seleccionar solo etiquetas sin atributos href (que es lo que hace [href]). –
@RanRag, debe marcar la respuesta de brandizzi como correcta incluso si no la necesita al final. –