Получить href текст ссылки, которая имеет определенный атрибут класса с помощью BeautifulSoup в Python


Как я могу получить только текст из href в теге привязки, который соответствует классу. Так что если у меня есть

<a href="Link_I_Need.html" class="Unique_Class_Name">link text</a>

Как я могу получить строку Link_I_Need.html из только якорного тега с классом Unique_Class_Name?

2 4

2 ответа:

Используйте .find() или .find_all() метод для выбора элементов, имеющих атрибут href и атрибут класса Unique_Class_Name. Затем выполните итерацию по элементам и получите доступ к значению атрибута href:

soup = BeautifulSoup(html)
anchors = soup.find_all('a', {'class': 'Unique_Class_Name', 'href': True})

for anchor in anchors:
    print (anchor['href'])

В качестве альтернативы можно использовать базовый CSS-селектор с .select() метод :

soup = BeautifulSoup(html)

for anchor in soup.select('a.Unique_Class_Name'):
    if anchor.has_attr('href'):
        print (anchor['href'])
<a class="blueText" href="/info/046386294000000899/?s_bid=046386294000000899&amp;s_sid=FSP-LSR-002&amp;s_fr=V01&amp;s_ck=C01" target="_blank">川村商店</a>

Вы можете получить только такой текст

for url in url_list:
    res = requests.get('%s' % url)
    soup = bs4.BeautifulSoup(res.text, "html.parser")
    for p in soup.find_all('a', class_='blueText'):
        print(p.text)