Нужно спарсить одну ссылку BeautifulSoup
Нужно спарсить из конкретного div-а только одну ссылку:
<div class="submenu_username" style="display: none;" data-submenuid="username">
<a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/home/">Активность</a>
<a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/">Профиль</a>
<a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/friends/">Друзья</a>
<a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/groups/">Группы</a>
<a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/screenshots/">Контент</a>
<a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/badges/">Значки</a>
<a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/inventory/">Инвентарь</a>
</div>
Нужна ссылка "профиль". Пытаюсь вот так сделать, нахожу этот див
soup = bs(r.text, 'html.parser')
submenu = soup.find('div', class_="submenu_username")
а дальше всё, ступор: не пойму как именно спарсить одну ссылку?
Ответы (1 шт):
Автор решения: Jack_oS
→ Ссылка
from bs4 import BeautifulSoup as bs
html = '<div class="submenu_username" style="display: none;" data-submenuid="username"><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/home/">Активность</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/">Профиль</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/friends/">Друзья</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/groups/">Группы</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/screenshots/">Контент</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/badges/">Значки</a><a class="submenuitem" href="https://steamcommunity.com/profiles/76561198289451573/inventory/">Инвентарь</a></div>'
soup = bs(html, 'html.parser')
submenu = soup.find('div', class_="submenu_username")
если нужна только первая ссылка:
first_link = submenu.find('a')['href']
или все ссылки из submenu:
links = submenu.find_all('a')
for link in links:
print(link['href'])
или сразу в список:
links_list = [link['href'] for link in submenu.find_all('a')]
и брать из него хоть первую, хоть вторую, хоть от третьей...:
>>> print(links_list[1]) # вторая
https://steamcommunity.com/profiles/76561198289451573/
>>> print(links_list[2:]) # от третьей
['https://steamcommunity.com/profiles/76561198289451573/friends/', 'https://steamcommunity.com/profiles/76561198289451573/groups/', 'https://steamcommunity.com/profiles/76561198289451573/screenshots/', 'https://steamcommunity.com/profiles/76561198289451573/badges/', 'https://steamcommunity.com/profiles/76561198289451573/inventory/']
>>> print(links_list[-1]) # последняя
https://steamcommunity.com/profiles/76561198289451573/inventory/