python - 在 Python 中导航 HTML 树

标签 python html beautifulsoup

<td id="aisd_calendar-2014-04-28-0" class="single-day future" colspan="1" rowspan="1" date="**2014-04-28**" >
  <div class="inner">
    <div class="item">
  <div class="view-item view-item-aisd_calendar">
  <div class="calendar monthview">
        <div class="calendar.4168.field_date.8.0 contents">
                      <a href="/event/2013/regular-board-meeting">**Regular Board Meeting**</a>                      <span class="date-display-single">7:00 pm</span>          </div>  
        <div class="cutoff">&nbsp;</div>
      </div> 
  </div>   
</div>  </div>
</td>

我有上面的 HTML 代码。我想从上面提取“date”标签(2014-04-28)和“a href”标签(定期董事会 session )。我如何使用 Python 来做到这一点?这可以使用 Beautiful Soup 来完成吗?

最佳答案

以下是通过 BeautifulSoup 实现此操作的方法:

from bs4 import BeautifulSoup


data = """
<html>
    <body>
        <td id="aisd_calendar-2014-04-28-0" class="single-day future" colspan="1" rowspan="1" date="**2014-04-28**" >
          <div class="inner">
            <div class="item">
          <div class="view-item view-item-aisd_calendar">
          <div class="calendar monthview">
                <div class="calendar.4168.field_date.8.0 contents">
                              <a href="/event/2013/regular-board-meeting">**Regular Board Meeting**</a>                      <span class="date-display-single">7:00 pm</span>          </div>
                <div class="cutoff">&nbsp;</div>
              </div>
          </div>
        </div>  </div>
        </td>
    </body>
</html>
"""
soup = BeautifulSoup(data)

td = soup.body.td  # or soup.find('td', id='aisd_calendar-2014-04-28-0')
print td['date'].strip('*')

link = soup.find('div', {'class': 'contents'}).a
print link['href']

打印:

2014-04-28
/event/2013/regular-board-meeting

另外,如果需要将日期转换为python的datetime,可以使用 strptime() :

from datetime import datetime

...

datetime.strptime(td['date'].strip('*'), '%Y-%m-%d')

希望有帮助。

关于python - 在 Python 中导航 HTML 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22607077/

相关文章:

javascript - olx.com 如何显示类别更改的表单字段并相应提交?

javascript - 创建交错选择框

python - 如何使用python提取文本,其中包含链接和链接后的文本以及br后的另一个文本

python - 如何在 Beautiful Soup 4 中将包含子标签的标签与空标签分开?

python - 如何在不跳过 pandas 中的 nan 值的情况下重新采样

python - 有没有办法在 python 中读取 Stata 标签?

html - 溢出:隐藏不适用于完整的视口(viewport)部分

python - 有没有办法找到类名并获取父标签的整个文本?

Python/Json 属性错误 : partially initialized module 'json' has no attribute

python - 在 Eclipse PyDev 中,有没有办法从 Pydev 包资源管理器中排除任意文件类型?