Я очищаю веб-данные и должен вернуть только текстовый элемент, связанный с гиперссылкой.Гиперссылка и текст неизвестны.Класс известен.Вот пример HTML:
<div class="a-column SsCol" role = "gridcell">
<h3 class="a-spacing-none SsName">
<span class="a-size-medium a-text-bold">
<a href="/gp/aag/main/ref=sm_name_2?ie=UTF8&ids=15112acd">Direct Name</a>
</span>
</h3>
</div>
В качестве альтернативы, желаемый текст может быть связан с изображением, а не с гиперссылкой:
<div class="a-column SsCol" role = "gridcell">
<h3 class="a-spacing-none SsName">
<img alt="Direct Name" src="https://images-hosted.com//01x-j.gi">
</h3>
</div>
Я попробовал метод ниже:
from lxml import html
import requests
response = requests.get('https://www.exampleurl.com/')
doc = html.fromstring(response.content)
text1 = doc.xpath("//*[contains(@class, 'SsName')]/text()")
Я использую lxml вместо BeautifulSoup, но готов перейти, если это рекомендуется.Желаемый результат:
print(text1)
['Direct Name']