这是HTML:
<div><div id="NhsjLK">
<li class="EditableListItem NavListItem FollowersNavItem NavItem not_removable">
<a href="/profile/Dileep-Sankhla/followers">Followers <span class="list_count">92</span></a></li></div></div>
我想提取文本92
并将其转换为整数并在python2中打印。我怎么能够?
代码:
i = soup.find('div', id='NhsjLK')
print "Followers :", i.find('span', id='list_count').text
答案 0 :(得分:4)
我不会直接在课堂上获取它,因为我认为“list_count”太宽泛了类值,可能会用于页面上的其他内容。
这个HTML代码片段肯定有几个不同的选项,但从我的观点来看,最好的一个就是使用“追随者”文本/标签并获得它的下一个兄弟:
from bs4 import BeautifulSoup
data = """
<div><div id="NhsjLK">
<li class="EditableListItem NavListItem FollowersNavItem NavItem not_removable">
<a href="/profile/Dileep-Sankhla/followers">Followers <span class="list_count">92</span></a></li></div></div>"""
soup = BeautifulSoup(data, "html.parser")
count = soup.find(text=lambda text: text and text.startswith('Followers')).next_sibling.get_text()
count = int(count)
print(count)
或者,另一个非常简洁可靠的方法是在父{的*=
值上使用部分匹配(下面的href
部分){ {1}}元素:
a
或者,您可以检查父count = int(soup.select_one("a[href*=followers] .list_count").get_text())
元素的类值:
li