Wpadłem na nieco skomplikowany problem XPath. Rozważmy następujący kod HTML części strony internetowej (użyłem Imgur i zastępuje tekst):XPath wybierz łącza graficzne - macierzysty link href z img src tylko jeśli istnieje, w przeciwnym razie wybierz 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>
raz pierwszy chcesz wyszukać wszystkie img
znaczniki w dokumencie i znalezieniem odpowiadającego src
es. Następnie chcę sprawdzić, czy link img src
zawiera rozszerzenie pliku obrazu (.jpeg, .jpg, .gif, .png). Jeśli nie zawiera rozszerzenia obrazu, nie chwytaj go. W tym przypadku ma rozszerzenie obrazu. Teraz chcemy dowiedzieć się, który link chcemy pobrać. Ponieważ istnieje parent href
, powinniśmy pobrać odpowiednie łącze.
pożądany rezultat: //i.imgur.com/ahreflink.jpg
Ale teraz powiedzmy parent href
nie istnieje:
<a name="missing! oh no!">
<img class="post-image-placeholder" src="//i.imgur.com/imgsrclink.jpg">
</img>
</a>
pożądany rezultat: //i.imgur.com/imgsrclink.jpg
Jak mogę iść o budowie tego XPath? Jeśli to pomaga, używam również Python (Scrapy) z XPath. Jeśli więc problem wymaga oddzielenia, można również użyć Pythona.
Czy próbowałeś już czegokolwiek? –
Dotarłem tylko do części, w której sprawdzam rozszerzenia graficzne linków, ale nie wiem, jak wybrać link do pobrania. – dtgee
Czy chcesz spróbować osiągnąć wynik całkowicie przy użyciu XPath, czy też używasz języka skryptowego, z którego możesz wdrożyć część logiki? –