Использование beautifulsoup4 для разграничения двух идентичных тегов, основанных на братьях и сестрах - PullRequest
0 голосов
/ 02 мая 2018

В настоящее время я пытаюсь получить текст из HTML-элемента на веб-странице с помощью beautifulsoup4. Моя проблема в том, что где-то на странице есть элемент с точно таким же именем. Это выглядит примерно так.

<div class="class">
  <span class="1"></span>
  <span class="value">text I want</span>
</div>
<div class="class">
  <span class="2"></span>
  <span class="value">text I DON'T want</span>
</div>

Я пытаюсь вернуть " текст, который я хочу ". Теперь, хорошо, что у вас есть разница в классе между братьями и сестрами - у первого брата есть класс «1», а у второго брата класс «2», но я понятия не имею, как на самом деле это различие в коде. Может кто-то опытный в BS4 помочь мне с этим?

Имейте в виду, я использую CSS-селекторы, чтобы получить нужные мне элементы, поэтому, если бы мы могли использовать это для получения элемента, содержащего текст, то тем лучше.

Пример того, как я нахожу элементы

soup.select("span[id='identifier']")

1 Ответ

0 голосов
/ 02 мая 2018

Использование XPATH:

 soup.find('span[@class="1"]').next_sibling

Использование CSS:

soup.select("span.1 ~ .value")

Я считаю, что оба из них должны работать. В противном случае, я бы рекомендовал проверить документацию здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...