получение только нескольких атрибутов из кода HTML и не все из них с помощью Beautifulsoup Python - PullRequest
1 голос
/ 28 мая 2020
    names = []

for code in soup.find_all('li'):
    a_tag = code.find("a")
    if a_tag is not None and 'title' in a_tag.attrs:
        l = a_tag.get('title')
        names.append(l)
        time.sleep(1)
print(names)

Когда я запускаю сценарий, он возвращает только несколько имен (например, атрибутов заголовка) из 30 или около того, и все теги содержат атрибут заголовка. Спасибо!

Вот код html для того, что сработало:

 <li class="wo9IH">
   <div class="uu6c_">
      <div class="t2ksc">
         <div class="RR-M- h5uC0 SAvC5" role="button" tabindex="0">
            <canvas class="CfWVH" height="40" width="40" style="position: absolute; top: -5px; left: -5px; width: 40px; height: 40px;"></canvas>
            <span class="_2dbep " role="link" tabindex="0" style="width: 30px; height: 30px;"><img alt="damla_dx's profile picture" class="_6q-tv" src="https://scontent-hbe1-1.cdninstagram.com/v/t51.2885-19/s150x150/100947324_584513555780923_3392957389983449088_n.jpg?_nc_ht=scontent-hbe1-1.cdninstagram.com&amp;_nc_ohc=cpbHm-9Tg24AX-Y5ZTo&amp;oh=523572e76dc634c387c1bce8f5ee24fd&amp;oe=5EF8F269"></span>
         </div>
         <div class="enpQJ">
            <div class="d7ByH"><a class="FPmhX notranslate  _0imsa " title="damla_dx" href="/damla_dx/">damla_dx</a></div>
            <div class="wFPL8 ">?????</div>
         </div>
      </div>
      <div class="Pkbci"><button class="sqdOP  L3NKy   y3zKF     " type="button">Follow</button></div>
   </div>
</li>

и вот код для того, что не сработало:

<li class="wo9IH">
   <div class="uu6c_">
      <div class="t2ksc">
         <div class="RR-M-  SAvC5" role="button" tabindex="0">
            <canvas class="CfWVH" height="40" width="40" style="position: absolute; top: -5px; left: -5px; width: 40px; height: 40px;"></canvas>
            <a class="_2dbep qNELH kIKUG" href="/connie_mario/" style="width: 30px; height: 30px;"><img alt="connie_mario's profile picture" class="_6q-tv" src="https://scontent-hbe1-1.cdninstagram.com/v/t51.2885-19/s150x150/25016555_1962725540720404_7523275851970904064_n.jpg?_nc_ht=scontent-hbe1-1.cdninstagram.com&amp;_nc_ohc=AvK0clN2PSMAX-detNw&amp;oh=6184a0c465a9bfcd04617d134cde4fe9&amp;oe=5EFA793D"></a>
         </div>
         <div class="enpQJ">
            <div class="d7ByH"><a class="FPmhX notranslate  _0imsa " title="connie_mario" href="/connie_mario/">connie_mario</a></div>
            <div class="wFPL8 ">?Connie_ Mario?</div>
         </div>
      </div>
      <div class="Pkbci"><button class="sqdOP  L3NKy   y3zKF     " type="button">Follow</button></div>
   </div>
</li>

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете сделать что-то более простое с помощью css selctors:

for artist in code.select('a[title]'):
    print(artist.text)

Для двух фрагментов в вашем вопросе результат должен быть:

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