2012-06-05 7 views
7

che sto cercando di analizzare con lxml in pitone e questa è la mia uscitaper tirare fuori contenuti con display style: none in un'espressione XPath

<td> 
    <span style="display:inline">text1</span> 
    <span style="display:none">text2</span> 
    <span>text3</span> 
    text4 
</td> 

Pensavo di essere abbastanza intelligente per utilizzare il seguente

tree = tr.xpath("//*[contains(@style,'inline')]/text()") 

Ma poi ho pensato di vedere solo il testo1. Quello che voglio è quello di vedere text3 e Text4 troppo in modo che l'uscita sarà

[ 'text1', 'text3', 'Text4']

Qualcuno mi può inviare la giusta direzione di farlo?

risposta

6

esplicitamente escludere nulla con display:none:

tree = tr.xpath("//*[not(contains(@style,'display:none'))]/text()") 

Detto questo - questo è solo un'approssimazione lontano di quello che un browser potrebbe effettivamente fare; vorresti guidare un browser reale (come con Selenium, le API di incorporamento o simili) se hai richiesto risultati rigorosamente accurati.

Problemi correlati