Я использую BeautifulSoup и хочу получить значение alt тега img.

Я хочу получить команду соперника на сегодняшнюю игру одной бейсбольной команды.

Поэтому я закодировал это.

Этот код получает информацию о сегодняшней игре с веб-сайта.

from bs4 import BeautifulSoup
import datetime
import urllib.request

req = urllib.request.Request("http://www.hanwhaeagles.co.kr/html/game/1st_schedule_list1.asp")
data = urllib.request.urlopen(req).read()

bs = BeautifulSoup(data, 'html.parser')

l = bs.find_all('div')
idx = 0

for s in l:
    try:
        prop = s.get('class')
        if prop != None and prop[0] == "box" and len(prop) == 2:
            l = s
            break
    except UnicodeEncodeError:
        print("Error")
    finally:
        idx += 1

print(l)

а «переменная l» — информация о сегодняшней игре.

Значение alt тега img — это название команды противника.

Я хочу распечатать... Помогите мне


person 황준필    schedule 10.08.2017    source источник


Ответы (2)


Поскольку вас больше интересуют данные, которые существуют внутри класса box. Вы можете напрямую извлечь этот класс и продолжить его обработку:

from bs4 import BeautifulSoup
import datetime
import urllib.request

req = urllib.request.Request("http://www.hanwhaeagles.co.kr/html/game/1st_schedule_list1.asp")
data = urllib.request.urlopen(req).read()
bs = BeautifulSoup(data, 'html.parser')

for item in bs.select('.box'):
    team_name = item.find('img')['alt']
    print(team_name)

'NC'
'NC'
...
person akash karothiya    schedule 10.08.2017
comment
team_name = chunck[0].find('img')['alt'] IndexError: индекс списка вне допустимого диапазона - person 황준필; 10.08.2017
comment
и я напечатал патрон, его значение равно [] - person 황준필; 10.08.2017
comment
Я отредактировал ответ в соответствии с вашим кодом, теперь попробуйте - person akash karothiya; 10.08.2017
comment
Спасибо. Теперь я знаю метод выбора. - person 황준필; 10.08.2017
comment
Сегодняшняя игра .box.today, поэтому я редактирую bs.select('.box') на bs.select('.box.today'), и я решаю эту проблему. - person 황준필; 10.08.2017
comment
Добро пожаловать @황준필 :) , и если этот или любой другой ответ решил ваш вопрос, рассмотрите возможность его принятия, нажав на галочку. Это показывает более широкому сообществу, что вы нашли решение, и повышает репутацию как отвечающего, так и вас самих. Нет обязанности делать это - person akash karothiya; 10.08.2017

from bs4 import BeautifulSoup
import urllib.request

req = urllib.request.Request("http://www.hanwhaeagles.co.kr/html/game/1st_schedule_list1.asp")
data = urllib.request.urlopen(req).read()

bs = BeautifulSoup(data, 'html.parser')

table = bs.find('table')

for tr in table.find_all('tr'):
    for td in tr.find_all('td'):
        if td.find('img'):
            if 'alt' in td.find('img').attrs:
                print(td.find('img')['alt'])

выход:

NC
NC
NC
KIA
KIA
KIA
두산
두산
삼성
삼성
넥센
넥센
SK
SK
NC
NC
롯데
롯데
KT
KT
KIA
KIA
SK
SK
LG
LG
KT
person Dmitriy Fialkovskiy    schedule 10.08.2017
comment
Я это сделал. Спасибо! - person 황준필; 10.08.2017