Итак, я пытаюсь получить информацию о веб-сайте, используя BeautifulSoup. Дело в том, что с помощью findAll () я получаю объект bs4.element.ResultSet, и мне нужно пройти через него, чтобы получить его элементы. Но я почти уверен, что получу только один тег, и я не хочу перебирать набор, в котором есть только один элемент.
Итак, мой вопрос: как мне получить только первый и, возможно, уникальный элемент объекта bs4.element.ResultSet?
<div class="textinfo">
<div class="author">A tale of <span><a href="/profile/89965">Edgar Allan Poe</a></span></div>
<div class="category">Category: Horror</div>
<div class="date">Date: 27/11/2008</div>
<div class="votes">Votes <a href="/text/200811799/votes"><span id="votesmedia">10.00</span></a> </div>
</div>
Эти методы находятся внутри класса, поэтому я использую 'self'.
def getTales(self):
talesLinks = self.file.readLinks(self.file.talePath)
driver = browser.connectChrome()
for link in talesLinks:
headerTale = []
driver.get(link)
page_source = driver.page_source
soup = BeautifulSoup(page_source, 'html.parser')
#Probably I'll get only one div 'textinfo' for each link.
header = soup.findAll('div', {'class': 'textinfo'})
self.getHeaderInfo(header, headerTale)
driver.quit()
print("chrome headless closed")
def getHeaderInfo(self, header, headerTale):
# I don't want to loop because I know 'header' has only one element.
for author in headerTale:
author = header.findAll('div', {'class', 'author'})
#...
#...