• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wyszukiwanie linku w kodzie html

Aruba Cloud - Virtual Private Server VPS
0 głosów
122 wizyt
pytanie zadane 1 listopada 2023 w Python przez mark162 Początkujący (410 p.)

próbuje wyciągnąć link do zdjęcia z kodu html, lecz problem polega na tym że nazwa tej class-y co chce wyciągnąć występuje kilka razy w fragmencie innej class-y

img_tags = soup.find_all('img', class_='wp-post-image')

nazwa class-y której szukam: class="wp-post-image"
inna class-a : class="secondary-product-image attachment-woocommerce_thumbnail attachment-shop-catalog wp-post-image wp-post-image--secondary"

Jak to obejść ??

 

 

 

1 odpowiedź

0 głosów
odpowiedź 1 listopada 2023 przez VBService Ekspert (256,600 p.)
wybrane 1 listopada 2023 przez mark162
 
Najlepsza

Zalecam użycie metody select, bo w pewnym sensie metoda ta działa podobnie jak querySelectorAll w js-ie, więc możemy użyć selektorów css-owych.

img[class*="wp-post-image"]:not([class*="--secondary"])

Przykład js  [ kod on-line ]

<ul style="list-style: none">
  <li>
    <img src="https://picsum.photos/140/160?random=1" class="wp-post-image">
    <img src="https://picsum.photos/140/160?random=2" class="wp-post-image">
    <img src="https://picsum.photos/140/160?random=3" class="wp-post-image wp-post-image--secondary">
  </li>
  <li>
    <img src="https://picsum.photos/140/160?random=4" class="wp-post-image wp-post-image--secondary">
    <img src="https://picsum.photos/140/160?random=5" class="wp-post-image wp-post-image--secondary">
    <img src="https://picsum.photos/140/160?random=6" class="wp-post-image">
  </li>
  <li></li>
</ul>

<script>
  /*
    img[class*="wp-post-image"]:not([class*="--secondary"])
  */
  const images = [...document.querySelectorAll('img[class*="wp-post-image"]:not([class*="--secondary"])')];
  document.querySelector('ul li:last-child').innerHTML = images.map(img => img.src).join('<br>');
</script>

 

więc w python-ie powinno to zadziałać  [ kod on-line ]

images = soup.select('img[class*="wp-post-image"]:not([class*="--secondary"]')
for img in images:
    print(img)
    print(img['src'])
    print('-' * 70)

 

[ Beautifulsoup : Difference between .find() and .select() ]
[ CSS Selector Reference ]

Podobne pytania

0 głosów
0 odpowiedzi 736 wizyt
+2 głosów
1 odpowiedź 172 wizyt
pytanie zadane 16 grudnia 2019 w Python przez Marak123 Stary wyjadacz (11,190 p.)
0 głosów
1 odpowiedź 247 wizyt
pytanie zadane 18 grudnia 2022 w C i C++ przez Krloo Użytkownik (530 p.)

93,329 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,663 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...