美丽的汤找到具有多个类别的元素

时间:2018-10-15 12:20:45

标签: python beautifulsoup

<div data-list="1" data-href="/a/ajaxPhones?id=46420863" class="action-link 
showPhonesLink">Показать телефон</div>

如何在Beautiful Soup中找到上述元素?

我尝试了以下操作,但没有用:

show = soup.find('div', {'class': 'action-link showPhonesLink'})

如何获取该元素?

2 个答案:

答案 0 :(得分:1)

我猜show = soup.find()中的汤是

source = requests.get(URL to get).text
soup = BeautifulSoup(source, 'lxml')

尝试:

show = soup.find('div', class_='action-link showPhonesLink').text

.text并不总是有效,但是我发现没有它,结果并不会真正改变。

如果您可以提供更多细节,我可以提供更多帮助。

答案 1 :(得分:0)

使用选择器:

show = soup.select_one('div.action-link.showPhonesLink')

或匹配确切的class属性:

show = soup.find('div', class_='action-link showPhonesLink')

# or (for older versions of BeautifulSoup)
show = soup.find('div', attr={'class': 'action-link showPhonesLink'})

请注意,使用第二种方法时,类的顺序以及空格都很重要,因为它与class属性完全匹配。 如果class属性中的任何更改(例如,类之间有一个空格)都将不匹配

我建议第一种方法。