Mi sono imbattuto in un problema XPath un po 'complicato. Considerate questo codice HTML di una parte di una pagina web (io ho usato Imgur e sostituito del testo):XPath seleziona collegamenti immagine - link genitore href di img src solo se esiste, altrimenti seleziona img src link
<a href="//i.imgur.com/ahreflink.jpg" class="zoom">
<img class="post-image-placeholder" src="//i.imgur.com/imgsrclink.jpg">
</img>
</a>
Prima di tutto voglio cercare tutti img
tag nel documento e che trovano la loro corrispondente src
es. Successivamente, voglio verificare se il collegamento img src
contiene un'estensione di file immagine (.jpeg, .jpg, .gif, .png). Se non contiene un'estensione dell'immagine, non afferrarla. In questo caso ha un'estensione dell'immagine. Ora vogliamo capire quale link vogliamo afferrare. Poiché esiste lo parent href
, dovremmo prendere il link corrispondente.
risultato desiderato: //i.imgur.com/ahreflink.jpg
Ma ora diciamo che il parent href
non esiste:
<a name="missing! oh no!">
<img class="post-image-placeholder" src="//i.imgur.com/imgsrclink.jpg">
</img>
</a>
Risultato desiderato: //i.imgur.com/imgsrclink.jpg
Come posso fare per costruire questo XPath? Se aiuta, sto anche usando Python (Scrapy) con XPath. Quindi se il problema deve essere separato, si può usare anche Python.
Hai provato qualcosa finora? –
Ho appena raggiunto la parte in cui controllo le estensioni di immagine dei link, ma sono confuso su come selezionare quale collegamento catturare. – dtgee
Vuoi provare a ottenere il risultato interamente utilizzando XPath o hai un linguaggio di scripting che stai usando che puoi implementare con la logica? –