Beautiful soupta class arama

Beautiful soupun resmi belgesinde şöyle bir örnek var:
soup.find(id="link3")
Bunun çalışmasında bir sıkıntı yok fakat ben belirli bir class aramak istediğimde sıkıntı veriyor:
>>> soup.find(class="sister") SyntaxError: invalid syntax
Bu soruna Beautiful soupun içinde bir çözüm mevcut mu?

Merhaba.

Çalıştığınız örnekte sister sınıfı, a tag’ının içinde yer alıyor. Dolayısıyla bu sınıfa a tag’ı üzerinden erişebilirsiniz. class yazdığınız zaman Python’daki class anahtar kelimesi kullanılacağı için syntax hatası alırsınız.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup

html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names
˓
→
were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""

soup = BeautifulSoup(html_doc, "html.parser")
print(soup.a)
print(soup.a["class"])

Daha detaylı aramalar yapmak için bir düzenli ifade kalıbı oluşturup, bu kalıbı da aratabilirsiniz.

1 Beğeni