使用BeautifulSoup获取特定标记后的值

时间:2014-09-11 03:06:17

标签: python web-scraping beautifulsoup html-parsing

我很难让BeautifulSoup为我搜索一些数据。从此代码示例中访问日期(实际数字,2008)的最佳方法是什么?这是我第一次使用Beautifulsoup,我已经弄清楚如何从网页上删除网址,但我不能将其缩小到只选择单词Date,然后只返回任何数字日期(在dd中)括号)。我甚至可能会问这个问题吗?

<div class='dl_item_container clearfix detail_date'>
    <dt>Date</dt>
    <dd>
        2008
    </dd>
</div>

1 个答案:

答案 0 :(得分:11)

找到dt代码by text并找到next dd sibling

soup.find('div', class_='detail_date').find('dt', text='Date').find_next_sibling('dd').text

完整的代码:

from bs4 import BeautifulSoup

data = """
<div class='dl_item_container clearfix detail_date'>
    <dt>Date</dt>
    <dd>
    2008
    </dd>
</div>
"""

soup = BeautifulSoup(data)
date_field = soup.find('div', class_='detail_date').find('dt', text='Date')
print date_field.find_next_sibling('dd').text.strip()

打印2008