Во-первых: вы ошиблись в названии класса.
Второе: это класс в <div>
, но @href
в <a>
. И <a>
не сразу после <div>
, поэтому вам нужно
'//*[@class="..."]//a/@href'
(я пропускаю имя класса, потому что оно слишком длинное для его отображения)
Но вместо этогодлинное имя класса вы можете попробовать
'//a[contains(@href, "mailto")]/@href'
Я проверял xpath
, используя lxml
text = '''<div class="restaurants-detail-overview-cards-LocationOverviewCard__detailLink--iyzJI restaurants-detail-overview-cards-LocationOverviewCard__contactItem--1flT6">
<span><a href="mailto:info@canopylounge.my?subject=?">
<span class="ui_icon email restaurants-detail-overview-cards-LocationOverviewCard__detailLinkIcon--T_k32"></span>
<span class="restaurants-detail-overview-cards-LocationOverviewCard__detailLinkText--co3ei">Email</span>
<span class="ui_icon external-link-no-box restaurants-detail-overview-cards-LocationOverviewCard__upLinkIcon--1oVn1"></span>
</a></span>
</div>'''
import lxml.html
soup = lxml.html.fromstring(text)
print(soup.xpath('//*[@class="restaurants-detail-overview-cards-LocationOverviewCard__detailLink--iyzJI restaurants-detail-overview-cards-LocationOverviewCard__contactItem--1flT6"]//a/@href'))
print(soup.xpath('//a[contains(@href, "mailto")]/@href'))