python使用正则获取html中的时间

想做一个爬虫,使用BeautifulSoup假使获取以下内容:

<div class="authi">
<img class="authicn vm" id="" src="static/image/common/online_member.gif" />
<em id="">发表于 <span title="2013-4-2 08:30:11">4&nbsp;天前</span></em>
<span class="pipe">|</span><a href=>倒序浏览</a>
<div style="float:right;position:relative;top:-6px;"><ul>
<li style="float: left; width: 130px; height: 24px;"><wb:follow-button uid="" type="gray_2" width="136" height="24"></wb:follow-button></li>
<li style=" float:left; width: 160px; height: 24px;"></li>
</ul></div></div>

如何获取以上内容中的2013-4-2 08:30:11这个时间呢?
我试着写了一个

re.compile('^20\d{2}-\d+-\d+\s\d{2}:\d{2}:\d{2}')

可是这个在使用的时候不能匹配到时间?如何解决?谢谢!

阅读 7.9k
2 个回答

https://gist.github.com/greatghoul/53...

# -*- coding: utf-8 -*-
from BeautifulSoup import BeautifulSoup 
import re

def get_timestamp(html):
    soup = BeautifulSoup(html)
    authi_elems = soup.findAll('div', { 'class': 'authi' })
    for authi_elem in authi_elems:
        date_elem = authi_elem.find('span', title=re.compile(r'20\d{2}-\d+-\d+\s\d{2}:\d{2}:\d{2}'))
        print date_elem.get('title')


if __name__ == '__main__':
    html = """
    <div class="authi">
    <img class="authicn vm" id="" src="static/image/common/online_member.gif" />
    <em id="">发表于 <span title="2013-4-2 08:30:11">4&nbsp;天前</span></em>
    <span class="pipe">|</span><a href=>倒序浏览</a>
    <div style="float:right;position:relative;top:-6px;"><ul>
    <li style="float: left; width: 130px; height: 24px;"><wb:follow-button uid="" type="gray_2" width="136" height="24"></wb:follow-button></li>
    <li style=" float:left; width: 160px; height: 24px;"></li>
    </ul></div></div>
    """

    get_timestamp(html)
re.compile('20\d{2}-\d+-\d+\s\d{2}:\d{2}:\d{2}')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题