Получить 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 ответа:
Используйте
.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&s_sid=FSP-LSR-002&s_fr=V01&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)