не может распечатать [0] данные из следующего HTML-кода - PullRequest
0 голосов
/ 04 сентября 2018

Могу ли я просто распечатать [0] из HTML?

from bs4 import BeautifulSoup

soup=BeautifulSoup("""<div class="couponTable"><div id="tgCou1" class="tgCoupon couponRow"><span class="spBtnMinus"></span><!-- react-text: 67 -->Wednesday Matches<!-- /react-text --></div><div class="couponRow rAlt1 tgCou1" id="rmid20180905WED1"><img src="/ContentServer/jcbw/images/flag_JLC.gif?CV=L302R1g" alt="Japanese League Cup" title="Japanese League Cup" class="cfJLC"><img src="/ContentServer/jcbw/images/icon_tv-C661.gif?CV=L302R1g" alt="C661-i-CABLE 661 C601-i-CABLE 601" title="C661-i-CABLE 661 C601-i-CABLE 601"></span></span><img src="/football/info/images/btn_odds.gif?CV=L302R1g" alt="All Odds" title="All Odds"></a></div><div class="couponRow rAlt0 tgCou1" id="rmid20180905WED2"><img src="/ContentServer/jcbw/images/flag_JLC.gif?CV=L302R1g" alt="Japanese League Cup" title="Japanese League Cup" class="cfJLC"><img src="/ContentServer/jcbw/images/icon_tv-C662.gif?CV=L302R1g" alt="C662-i-CABLE 662 C602-i-CABLE 602" title="C662-i-CABLE 662 C602-i-CABLE 602"></span></span><img src="/football/info/images/btn_odds.gif?CV=L302R1g" alt="All Odds" title="All Odds"></a></div></div></div>""",'html.parser')

lines=soup.find_all('img')
for line in lines:
    print(line['alt'])

выход

Japanese League Cup
C661-i-CABLE 661 C601-i-CABLE 601
All Odds
Japanese League Cup
C662-i-CABLE 662 C602-i-CABLE 602
All Odds

Ожидаемый результат

Japanese League Cup
Japanese League Cup

Ответы [ 3 ]

0 голосов
/ 04 сентября 2018

Отдельно получайте div, а затем извлекайте из него теги img.

for div in soup.find_all("ul", {"class": "couponRow"}):
    print(div.find_all("img")[0].title)
0 голосов
/ 04 сентября 2018

Глядя на ваши ответы другим людям, кажется, что вам не нужен альтернативный текст всех изображений, а только указанных. Общий знаменатель из (предположительно небольшого) примера, который вы привели, состоит в том, что они разделяют класс. Может быть, это то, что вы ищете?

lines=soup.find_all('img', class_='cfJLC') 
for line in lines:
    print(line['alt'])

Выход:

Japanese League Cup
Japanese League Cup
0 голосов
/ 04 сентября 2018
for line in lines:
    print(line['alt'])

Это печатает все детали, которые доступны в строках. Поскольку вы просто хотите получить подробную информацию о Кубок японской лиги , вам необходимо выполнить следующие действия, которые дадут вам атрибут alt из вашего изображения.

print(line.attrs['alt'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...