Печать c текста из 2-х интервалов в одной строке с BeautifulSoup с использованием python - PullRequest
0 голосов
/ 27 января 2020

Я продолжаю свои файлы данных, вытягивая многократную статистику, основанную на игроках в видеоигре. Я использую BeautifulSoup и могу добраться до точки, где текст, который я хочу, находится в строке, но проблема в том, что есть два интервала, поэтому он тянет несколько строк, когда я выполняю итерацию с для l oop.

EXAMPLE TEXT FROM BEAUITFUL SOUP:
[<div class="stats-row"><span>0 kill rounds</span><span>6652</span></div>, 
<div class="stats-row"><span>1 kill rounds</span><span>4431</span></div>, 
<div class="stats-row"><span>2 kill rounds</span><span>2308</span></div>, 
<div class="stats-row"><span>3 kill rounds</span><span>861</span></div>, 
<div class="stats-row"><span>4 kill rounds</span><span>200</span></div>, 
<div class="stats-row"><span>5 kill rounds</span><span>49</span></div>]

Мой для l oop тянет оба текста.

for stats in all_stats:
    print(stats.text)

0 kill rounds6652
1 kill rounds4431
2 kill rounds2308
3 kill rounds861
4 kill rounds200
5 kill rounds49

Мне нужны только указанные c числа из 2-го пролета:

<div class="stats-row"><span>TEXT I HATE!</span><span>TEXT I LOVE</span></div>

I я пробовал разные версии findChildren () .. find_next () .. find_next_sibling () .. Я продолжаю получать строковые ошибки .. и find_all (), я вместо этого хотел использовать find ()? Я искал ответ, но не могу найти ответ, указывающий c достаточно того, что я пытаюсь сделать.

all_stats = soup.find('div',{'class':'columns'}).find('div',{'class':'stats-row'}).next_sibling('span')

TypeError: 'NavigableString' object is not callable

----------------------------------
"ResultSet object has no attribute '%s'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?" % key

Я скоро ухожу с работы, поэтому я смогу проверить ответы, когда вернусь домой, поэтому я прошу прощения, если кто-то ждет моего ответа.

Полный код, где я я застрял: https://www.codepile.net/pile/JP43EmrM

1 Ответ

1 голос
/ 27 января 2020

Как насчет:

for stats in all_stats:
    print(stats.find_all('span')[1].text)
...