Получить первое значение тд - PullRequest
0 голосов
/ 28 апреля 2018

Я новичок в Beautifulsoup и Python, пытаюсь понять, как получить первый тэг HTML-страницы. Может кто-нибудь сказать мне, что не так с моим кодом?

HTML

<th width="10%">1365 m</th>
<th width="15%">Rating 25-0</th>
<th width="10%">12h45</th>

Я хотел бы получить только первую ширину со значением 1365. Ниже мой код

print('Track '+soup.findAll('th',{'width':'10%'})[3])

Я пытался find('th',{'width':'10%'})[3]), но он вызывает исключение indexbound. Любая помощь? С моим кодом я получаю второй тег, который 12h45

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

print(soup.findAll('th')[0])

Это первый.

Компьютеры запускаются , считая с 0,1,2,3 .... n. если вы хотите напечатать последний

print(soup.findAll('th')[1])

Почему

soup.findAll('th',{'width':'10%'})[3] не работает.

Мы ищем ВСЕХ -х с width из 10%

В этом HTML только два.

      <th width="10%">1365 m</th>
      <th width="15%">Rating 25-0</th>
      <th width="10%">12h45</th> 

Лучший способ напечатать это:

for i in soup.findAll('th',{'width':'10%'}):
    print(i)
0 голосов
/ 28 апреля 2018

soup.findAll('th',{'width':'10%'})[3] должно быть:

# Get the all matching 'th' that also has 'width' set to  '10%', access the first match
print('Track '+soup.findAll('th',{'width':'10%'})[0]) 

или если вы просто хотите получить доступ к первому совпадению:

# Get the first 'th' with 'width' '10%'
soup.find('th',{'width':'10%'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...