Я работаю над скребковым проекта и веб-я следующий пункт, который я планирую веб переделку:Красивый вопрос Суп с webscraping
<td class="country">
<div>
<img alt="Niger" height="27" src="http://assets.rio2016.nbcolympics.com/country-flags/52x35/NIG.png" width="40"/>
Niger
</div>
В этом случае я пытаюсь получить страну Нигер из список. У меня есть целый стол, где я пытаюсь вытащить все страны. Текущий код, который у меня есть, выглядит следующим образом:
response = requests.get('http://www.nbcolympics.com/medals')
soup = BeautifulSoup(response.content, 'lxml')
for td in soup.findAll("td",{"class": "country"}):
print(td)
Это поможет мне получить много информации. Я просто хочу сосредоточиться на стоимости страны в таблице. (Эта таблица содержит все страны, которые соревновались в Олимпийских играх.) Если я пытаюсь сделать что-то вроде:
for td in soup.findAll("td",{"class": "country"}).children:
Я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "idea.py", line 15, in <module>
for row in soup.find_all('tr').children:
AttributeError: 'ResultSet' object has no attribute 'children'
Я знаю, что там должно быть чтобы я мог просматривать каждый из этих тд, чтобы вытащить значение страны. (Я могу получить страну, используя get_text(), но есть намного больше информации, которая приходит с ней.) Кроме того, если значение div имеет класс, то я думаю, что это было бы довольно легко сделать. Спасибо за любую помощь.
Я также попытался:
for td in soup.findAll("img", {"width": "40"})
print(td)
, который почти заставляет меня, что я хочу. Он напечатает следующее:
<img alt="Togo" height="27" src="http://assets.rio2016.nbcolympics.com/country-flags/52x35/TOG.png" width="40"/>
Однако, я не получаю страну сразу после нее! Но я просто там!
Да, я обновил, чтобы показать, что происходит, когда вы используете тег img - он почти получает меня, что я хочу, но останавливается прямо перед страной. Так вот, это только что дает мне то, что я хочу, но не совсем! Спасибо вам за помощь! –
Я обновил свой ответ, он должен исправить вашу проблему. В следующий раз попробуйте google «beautifulsoup get image alt», и вы найдете ответ. –
Получил, что, похоже, сработало! Спасибо! –