Как найти теги внутри тегов, используя Python? - PullRequest
0 голосов
/ 13 января 2020

Я хочу знать, как найти тег внутри другого тега.

Источник данных выглядит следующим образом:

<ul class="DB_su a1" style="display: none;">
  <li><a href="link">text</a></li>
  <li><a href="link2">text2</a></li>
  <li><a href="link3">text3</a></li>
  <li><a href="link4">text4</a></li>
  <li><a href="link5">text5</a></li>
  <li><a href="link6">text6</a></li>
</ul>
<ul class="DB_su a2" style="display: none;">
  <li><a href="link">text</a></li>
  <li><a href="link2">text2</a></li>
  <li><a href="link3">text3</a></li>
  <li><a href="link4">text4</a></li>
  <li><a href="link5">text5</a></li>
  <li><a href="link6">text6</a></li>
</ul>
<ul class="DB_su a3" style="display: none;">
  <li><a href="link">text</a></li>
  <li><a href="link2">text2</a></li>
  <li><a href="link3">text3</a></li>
  <li><a href="link4">text4</a></li>
  <li><a href="link5">text5</a></li>
  <li><a href="link6">text6</a></li>
</ul>
...

Это код Python, который я сделал, сославшись на до HTML источников.

for flink in range(11):
   count = str(flink + 1)
   ss = soup.find('ul', class_='DB_su a' + count)
   dd = ss.findAllNext('a')
   print(dd)

Это привело к большему количеству результатов, чем к требуемым данным. Были собраны не только данные внутри тега, но и все последующие теги.

Я хочу получить тег href:

[link, link2, link3, link4, link5, link6]

1 Ответ

0 голосов
/ 13 января 2020

В вашем "for flink in range (11)" попробуйте добавить что-то вроде этого:

from bs4 import BeautifulSoup
import re

html = """
<ul class="DB_su a1" style="display: none;">
  <li><a href="link">text</a></li>
  <li><a href="link2">text2</a></li>
  <li><a href="link3">text3</a></li>
  <li><a href="link4">text4</a></li>
  <li><a href="link5">text5</a></li>
  <li><a href="link6">text6</a></li>
</ul>
<ul class="DB_su a2" style="display: none;">
  <li><a href="link">text</a></li>
  <li><a href="link2">text2</a></li>
  <li><a href="link3">text3</a></li>
  <li><a href="link4">text4</a></li>
  <li><a href="link5">text5</a></li>
  <li><a href="link6">text6</a></li>
</ul>
<ul class="DB_su a3" style="display: none;">
  <li><a href="link">text</a></li>
  <li><a href="link2">text2</a></li>
  <li><a href="link3">text3</a></li>
  <li><a href="link4">text4</a></li>
  <li><a href="link5">text5</a></li>
  <li><a href="link6">text6</a></li>
</ul>
       """
soup = BeautifulSoup(html,'html.parser')
for n in soup.find_all('ul', attrs={'class': 'DB_su a3'}):    
   for x in n.find_all('a'): 
    print (x.get('href'))

результат:

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