在BeautifulSoup中导航DOM

时间:2015-12-13 16:28:45

标签: python beautifulsoup

我目前能够使用findAll功能查找某些元素。有没有办法导航他们的孩子?

我的代码是:

data = soup.findAll(id="profile-experience")
print data[0].get_text()

它返回一个文本块(例如,某些文本没有正确间隔开)

DOM看起来像这样

<div id="profile-experience>
  <div class="module-body>
    <li class="position">
    <li class="position">
    <li class="position">

如果我在findAll上做class="position,我就会得到太多废话。有没有办法使用BeautifulSoup找到嵌套在<li class="position">

下面的<div id="profile-experience">元素

我想做这样的事情:

data = soup.findAll('li',attrs={'class':'position'}) 

(我只获取嵌套数据)

d in data:
  print d.get_text()

1 个答案:

答案 0 :(得分:2)

当然,您可以“链接”find*来电:

profile_experience = soup.find(id="profile-experience")

for li in profile_experience.find_all("li", class_="position"):
    print(li.get_text())

或者,您可以使用CSS selector

一次解决此问题
for li in soup.select("#profile-experience li.position"):
    print(li.get_text())